Название: Немного про #include Отправлено: Ced от Май 20, 2017, 15:52 Столкнулся с проблемой. После очередной доработки программы она отказалась собираться, объявив, что не видит ряда конструкторов и перегруженных операторов. \проблема решилась путем внесения в текст CPP файла строки
Код: #inclelt myfile.cpp Означенный файл содержит тела перечисленных конструкторов и перегруженных операторов. Соответствующий хедер был включен ранее. template и virtual не использую в тексте вообще. После какого именно изменения началась проблема, упустил. Так случилось. Подскажите пожалуйста, в каких случаях код конструкторов и перегруженных операторов требуется непосредственно в файле, где они используются? Название: Re: Немного про #include Отправлено: ViTech от Май 20, 2017, 16:17 После очередной доработки программы она отказалась собираться, объявив, что не видит ряда конструкторов и перегруженных операторов. Какие ошибки выводятся? И как выглядят сигнатуры конструкторов/перегруженных операторов тоже хорошо бы увидеть. Название: Re: Немного про #include Отправлено: Ced от Май 20, 2017, 18:25 После очередной доработки программы она отказалась собираться, объявив, что не видит ряда конструкторов и перегруженных операторов. Какие ошибки выводятся? И как выглядят сигнатуры конструкторов/перегруженных операторов тоже хорошо бы увидеть. Ошибки выводятся "Отсутствует конструктор ......." который требуется для создания текущего объекта. Конструкторы любые. Например: Код: Method::Method () Весь текст тут не привожу исключительно по соображениям размера. Полный хедер 300 строк. Полный СРР - больше тысячи. А что именно из него вытащить, просто не знаю. Название: Re: Немного про #include Отправлено: Ced от Май 20, 2017, 18:31 Какие ошибки выводятся? И как выглядят сигнатуры конструкторов/перегруженных операторов тоже хорошо бы увидеть. Вот пример ошибки: Цитировать D:\Programs\main\GetData\protocol.cpp:1004: ошибка: undefined reference to `Handler::Handler()' А вот строка кода, которая ее устраняет: Цитировать #include "..\nuclies\handlers.cpp" Хедер файла handlers включен.В других сборках эта же пара файлов работает без таких изысков. Название: Re: Немного про #include Отправлено: Ced от Май 20, 2017, 18:35 Да, вот еще наверно что. Старая версия содержала виртуальные деструкторы и методы.
Сейчас они закоментарены. Пробовал полную пересборку. Толку никакого. Название: Re: Немного про #include Отправлено: Ced от Май 20, 2017, 18:49 \нашел причину. Как известно, самые загадочные ошибки имеют самые дурацкие причины:) Я случайно исключил handlers из проекта:)
|