* .h или * .hpp для ваших определений классов

Почему бы просто не использовать небольшой цикл, чтобы определить, существует ли именованный лист? Скажите, искали ли вы рабочую таблицу с именем «Sheet1» в текущей книге.

Dim wb as Workbook
Dim ws as Worksheet

Set wb = ActiveWorkbook

For Each ws in wb.Worksheets

    if ws.Name = "Sheet1" then
        'Do something here
    End if

Next
497
задан gsamaras 21 July 2016 в 05:20
поделиться

12 ответов

Вот несколько причин того, чтобы иметь другое именование C по сравнению с заголовками C++:

  • Автоматическое форматирование кода, у Вас могли бы быть различные инструкции для форматирования C и код C++. Если заголовки разделяются следовательно, можно установить редактора для применения соответствующего форматирования автоматически
  • Именование, я был на проектах, где были библиотеки, записанные в C, и затем обертки были реализованы в C++. Так как заголовки обычно имели аналогичные имена, т.е. Feature.h по сравнению с Feature.hpp, их было легко сказать независимо.
  • Включение, возможно, Ваш проект имеет в наличии более соответствующие версии, записанные в C++, но Вы используете версию C (см. выше точки). Если заголовки называют после языка они реализованы в Вас, может легко определить все C-заголовки и проверку на версии C++.

Помнят, C не C++, и это может быть очень опасно для смешивания и подгонки, если Вы не знаете то, что Вы делаете. Именование Ваших источников соответственно помогает Вам сказать языки независимо.

476
ответ дан David Holm 21 July 2016 в 05:20
поделиться

Я использую.h, потому что это - то, что Microsoft использует, и что создает их генератор кода. Никакая потребность идти вразрез с мелкой частицей.

2
ответ дан Mark Ransom 21 July 2016 в 05:20
поделиться
  • 1
    Дон комментариев; t действительно позволяют код, но это должно показать, что он действительно работает. мерзавец $ ==== init ==== $ касается test.txt ====, мерзавец $ добавляют. мерзавец $ ==== фиксирует-a ==== список версии мерзавца $ - ГОЛОВА количества = > 1 ==== список версии мерзавца $ - считает ведущее устройство = > 1 ==== контроль мерзавца $-b тестирует ==== список версии мерзавца $ - тест количества = > 1 ==== список версии мерзавца $ - количество ВОЗГЛАВЛЯЕТ ^master = > 0 ==== $ касаются test2.txt ====, мерзавец $ добавляют. мерзавец $ ==== фиксирует-a ==== список версии мерзавца $ - ведущее устройство количества = > 1 ==== список версии мерзавца $ - считает тест = > 2 ==== списка версии мерзавца $ - количество ВОЗГЛАВЛЯЕТ ^master = > 1 ==== – Peter van der Does 14 June 2013 в 12:11

Я недавно начал использовать *.hpp для заголовков C++.

причина состоит в том, что я использую emacs в качестве своего основного редактора, и он входит автоматически в c-режим, когда Вы загружаетесь *.h файл и в c ++-mode, когда Вы загружаетесь *.hpp файл.

Независимо, что факт я не вижу серьезных оснований для выбора *.h более чем *.hpp или наоборот.

10
ответ дан mtb 21 July 2016 в 05:20
поделиться

Можно назвать Ваш, включает то, что Вы любите.

Просто потребность указать, что полное имя в #include.

я предполагаю это, если Вы работаете с C для использования .h и когда с C++ для использования .hpp.

Это находится в конце просто конвенция.

6
ответ дан mtb 21 July 2016 в 05:20
поделиться

Codegear Разработчик C++ использует .hpp для заголовочных файлов, автоволшебно сгенерированных от исходных файлов Delphi и.h файлов для Ваших "собственных" заголовочных файлов.

Так, когда я пишу заголовочный файл C++, я всегда использую.h.

5
ответ дан Roddy 21 July 2016 в 05:20
поделиться

Я предпочитаю, чтобы .hpp для C++ прояснил обоим редакторам и другим программистам, что это - заголовок C++, а не заголовочный файл C.

6
ответ дан JohnMcG 21 July 2016 в 05:20
поделиться

C++ ("C Плюс Плюс") имеет смысл, поскольку .cpp

, Имеющий заголовочные файлы с .hpp расширением, не имеет того же логического потока.

6
ответ дан Dynite 21 July 2016 в 05:20
поделиться
  • 1
    Какой столбец проводят Вас подсчет? Действительно ли это - первое? – Hengjie 13 February 2013 в 22:11

Я использую .hpp, потому что я хочу, чтобы пользователь дифференцировал, какие заголовки являются заголовками C++, и какие заголовки являются заголовками C.

Это может быть важно, когда Ваш проект использует и C и модули C++: Как кто-то еще объясненный передо мной, необходимо сделать это очень тщательно и его запуски согласно "контракту", который Вы предлагаете посредством расширения

.hpp: Заголовки C++

(Или .hxx или .hh, или безотносительно)

Этот заголовок для C++ только.

, Если Вы находитесь в модуле C, даже не пытайтесь включать его. Вам не понравится он, потому что никакое усилие не сделано для создания этого C-friendly (слишком много было бы потеряно, как перегрузка функции, пространства имен, и т.д. и т.д.).

ч: C/C++ совместимые или чистые Заголовки C

Этот заголовок может быть включен и по источнику C и по источнику C++, прямо или косвенно.

Это может включенный непосредственно, будучи защищенным __cplusplus макрос:

  • , Которые означают, что с точки зрения C++ код C-compatible будет определен как extern "C".
  • С точки зрения C, весь код C будет явно видим, но код C++ будет скрыт (потому что это не скомпилирует в компиляторе C).

, Например:

#ifndef MY_HEADER_H
#define MY_HEADER_H

   #ifdef __cplusplus
      extern "C"
      {
   #endif

   void myCFunction() ;

   #ifdef __cplusplus
      } // extern "C"
   #endif

#endif // MY_HEADER_H

Или это могло быть включено косвенно соответствующим .hpp заголовком, включающим его с extern "C" объявление.

, Например:

#ifndef MY_HEADER_HPP
#define MY_HEADER_HPP

extern "C"
{
#include "my_header.h"
}

#endif // MY_HEADER_HPP

и:

#ifndef MY_HEADER_H
#define MY_HEADER_H

void myCFunction() ;

#endif // MY_HEADER_H
218
ответ дан Community 21 July 2016 в 05:20
поделиться

Это не имеет значения, какое расширение Вы используете. Любой в порядке.

я использую *.h для C и *.hpp для C++.

28
ответ дан mtb 21 July 2016 в 05:20
поделиться

Я всегда полагал .hpp заголовок быть своего рода портманто .h и .cpp файлы... заголовок, который содержит детали реализации также.

Обычно, когда я видел (и использование) .hpp как расширение, нет никакого соответствия .cpp файл. Как другие сказали, это не жесткое правило, как я склонен использовать .hpp файлы.

46
ответ дан mtb 21 July 2016 в 05:20
поделиться

В одном из моих заданий в начале 90-х, мы использовали .cc и .hh для исходных и заголовочных файлов соответственно. Я все еще предпочитаю его по всем альтернативам, вероятно, потому что является самым легким ввести.

5
ответ дан camh 21 July 2016 в 05:20
поделиться

Расширение исходного файла может иметь значение к Вашей системе сборки, например, у Вас могло бы быть правило в Вашем make-файле для .cpp или .c файлы, или Ваш компилятор (например, Microsoft cl.exe) мог бы скомпилировать файл как C или C++ в зависимости от расширения.

, поскольку необходимо предоставить целое имя файла #include директива, расширение заголовочного файла не важно. Можно включать .c файл в другом исходном файле, если Вам нравится, потому что это - просто текстовое, включают. Ваш компилятор мог бы иметь опцию вывести предварительно обработанный вывод, который ясно даст понять это (Microsoft: /P для предварительной обработки в файл, /E для предварительной обработки к stdout, /EP для исключения #line директивы /C для сохранения комментариев)

Вы могли бы принять решение использовать .hpp для файлов, которые только относятся к среде C++, т.е. они используют функции, которые не скомпилируют в C.

0
ответ дан Mike Dimmick 21 July 2016 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: