![]() |
|
|
![]()
|
|
| AndronST |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 7.8.2005 Где: Новосибирск Репутация: нет Всего: нет |
Приветсвую форумчан и гостей форума!
Недавно пересел с Builder на eVC++, естессно полезли грабли... Недавно наткнулся на самые большие - работа c #include... Собсна вопрос: как нужно инклудить заголовочные файлы, чтобы не возникало подобной ошибки : Calculator.obj : error LNK2005: "class CCalculator * Calculator" (?Calculator@@3PAVCCalculator@@A) already defined in adderdlg.obj У меня есть 2 файла с моими классами, хедэр одного проинклуден в хедэре другого и этот уже инклудится в других файлах... А поскольку клас из второго файла используется в одном модуле... короче, получается мой класс 2 проинклуденным в одном файле... В Билдере это не фатально, а здесь билд не проходит... Люди, подскажите плиз как нуна с инклудами здесь обращаться? |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Чтобы не подключалось по несколько раз одно и тоже в начале каждого файла пиши:
Где FILENAME_H естественно название твоего файла. |
|||
|
||||
| AndronST |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 7.8.2005 Где: Новосибирск Репутация: нет Всего: нет |
2sergej.z
Thanks! Навел на мыслю на правильную Ларчик как всегда открывался просто... меня переклинило, и я в заголовочнике объявил переменную... она то как раз и объявлялась несколько раз... поставил extern и все, естессно, заработало |
|||
|
||||
| Denn |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 6.8.2005 Репутация: 1 Всего: 2 |
sergej.zЛучше #pragma once
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Denn, не лучше |
|||
|
||||
| ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: нет Всего: 29 |
Согласен. Это инициатива мелкософта. Попользовался неделю - отучивался месяц. Лучше не использовать. |
|||
|
||||
| Denn |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 6.8.2005 Репутация: 1 Всего: 2 |
Почему? Для совместимости с другими компиляторами?
|
|||
|
||||
| ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: нет Всего: 29 |
Совместимость тут особой роли не играет. Просто лучше не брать вредных привычек, чтобы не отвыкать от них. |
|||
|
||||
| Амортизатор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 17.4.2005 Где: в Караганде Репутация: нет Всего: 8 |
Почему же не играет? Самое лучшее - старательно следовать родному стандарту языка хотя бы в синтаксисе, чтобы не подсесть на "удобные" фичи разных IDE. Ибо IDE - сегодня есть завтра нет, а С++ - вечен.
-------------------- Поехали! |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Согласна насчет стандарта в коде. Однако возможности IDE тоже грех не использовать. Для ленивых (сама такая) напоминаю, что IDE - штука расширяемая. Можно написать команды, которые в пустые файлы вставляют шаблонный текст, сгенерированный по каким-то правилам. Например, у нас в конторе макрос в h-файлы вставляет "скобки" #ifndef XXX - #endif, в cpp - слова про DEBUG_NEW, а также добавляет теги для VSS, чтобы записывалось, кто файл трогал и комментарии по этому поводу.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |