Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Proger
Зарегистрирован: 18.08.2005 Сообщения: 16
|
Добавлено: Вт Авг 23 2005 00:18 Заголовок сообщения: Проблема с хедерами |
|
|
Ситуация.
Есть програма (на Visual C++ . NET) к которой подключено 2 *.h файла. В первом (library.h) есть нейкая функция prdw();.
Во втором (Class.h) есть функция которая использует функцию prdw();
Если все так и оставить то при компиляции компилятор выдает ошибку.
А если клас внести в основной исходник, и удальть Class.h, программа компилируется.
Вопрос: возможно ли зделать так чтоб один из хедеров использовал функцию другого? |
|
Вернуться к началу |
|
|
McZim
Зарегистрирован: 09.08.2005 Сообщения: 275 Откуда: Omsk
|
Добавлено: Вт Авг 23 2005 04:44 Заголовок сообщения: |
|
|
Ответ: Возможно, просто в одном *.h инклюдиш другой *.h, только тебе нужно следить за тем что-бы те не инициализировал несколько раз *.h файлы |
|
Вернуться к началу |
|
|
DmitryShm
Зарегистрирован: 17.11.2003 Сообщения: 211 Откуда: Казань
|
Добавлено: Вт Авг 23 2005 08:19 Заголовок сообщения: проблемы |
|
|
Проблемы с хэдэрами быть вообще не должно. Если проблема возникает, то тогда можно думать о том, что есть серьезные проблемы с логическим дизайном приложения. Программируя на С++, нужно думать, что .h и .cpp -- суть один модуль, и что стоит строить этот модуль, как атомарный, всегда готовый к повторному использованию другими программистами. Один хэдер включает другой хэдер только если это включение нужно на уровне интерфейсов, т.е. декларативно. Если функция из другого хэдера нужна только для реализаци, то включай хэдер только в свой .cpp файл. Думай об этом при программировании на С++ и проблем не будет. Не лишним будет прочитать книги Страуструпа и Буча, что добавит уверенности и профессионализма при практике хороших методов программирования. _________________ love IT |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Вт Авг 23 2005 09:12 Заголовок сообщения: |
|
|
А я в headerах всегда пишу
Код: | #ifndef MYHEADERFILE
#define MYHEADERFILE
...
#endif |
Вот, типа того. Тогда содержимое два и более раз не включается |
|
Вернуться к началу |
|
|
|