| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > implict declaration of function |
| Автор: Tiffany 6.6.2008, 10:54 | ||||||
| Есть такое дело... Заголовочный файл (MyThread.h), содержащий соответствующий класс инклудится в другой файл (файл формы). Все работает. НО когда я хочу этот же файл приинклудить к другой форме вылазит ошибка: http://ipicture.ru/ Приведу куски текстов файлов: form0.ui.h - файл главной формы
MyThread.h - файл который инклудим
TRemoteControl.h - описание класса используемого в MyThread.h (здесь выдает ошибку)
Буду очень признательна за помощь, а то я свой бубен дома забыла |
| Автор: MAKCim 6.6.2008, 11:26 |
| Tiffany, в *.h файлах не должно быть определений методов вынеси TxBuffer в TRemoteControl.cpp |
| Автор: Peter 6.6.2008, 15:40 |
| Как я понял, компилятор не узнал функцию write(). Вот он и говорит: "Implicit declaration...". Значит, он ее не нашел в заголовочных файлах. Добавлено через 3 минуты и 18 секунд Что если подключить io.h? |
| Автор: Tiffany 7.6.2008, 10:42 | ||
Peter, дык в первом случае-то все находил. Ну лан, када я все инклуды из form0.ui.h перетащила в MyThread.h - полезла куча ошибок в духе:
Как-то так. Т.е. функция write() уже устраивает, но ругается на повторное объявление других... Вооот, MAKCim, это я сеня канешн попробую, хотя реализация может находиться в файле с заголовками, но мало ли |
| Автор: Alexeis 7.6.2008, 10:59 |
| Tiffany, скорее всего множественное включение заголовочных файлов. Нужно поместить заголовочный файл в "скобки" из #if !defined(<уникальный идентификатор>) #define <уникальный идентификатор> тут код заголовков #endif |
| Автор: Tiffany 7.6.2008, 13:35 |
| Alexeis, так и сделано, смари код |
| Автор: Peter 11.6.2008, 12:07 |
Конечно! Получается, в нескольких .CPP сидит тело одной и той же функции. Компилятор на это и ругается. Тело функции может присутствовать в проекте только один раз. В заголовочных файлах можно объявлять шаблоны (template) функций, поскольку из них объектный код не генерируется. |
| Автор: Torsten 11.6.2008, 13:48 |
| Tiffany, int write() - это твоя функция или библиотечная ? Если твоя напиши как ее обьявляешь (то как она в хедере выглядит). |