|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
||||||||||||||||
Правильное подключение хедеров13.12.2014, 12:38. Показов 2709. Ответов 7
Здоровеньки булы.
По совету DrOffset в теме Перекрёстное подключение заголовочных файлов попытался скомпоновать хедеры: L_String.h:
Изначальная суть проблемы: необходимо собрать классы, каждый из которых должен знать и может создавать другой.
0
|
||||||||||||||||
| 13.12.2014, 12:38 | |
|
Ответы с готовыми решениями:
7
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
|
|
| 13.12.2014, 12:56 | |
|
1. Я не вижу описание класса String.
Есть IString. 2. Поскольку класс шаблонный, то его реализацию нельзя выносить в отдельный файл. Все пишите в заголовочном.
0
|
|
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
| 13.12.2014, 12:59 [ТС] | |
|
В L_String.h 45 строка class String : public Special::IString<char>
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 13.12.2014, 14:26 | |
|
Бендерродригез, ошибки-то хоть покажи
![]() А еще лучше давай все свои файлы в архиве. Гадать что-то не хочется. Безотносительно данной проблемы, создавать класс, который может кидать исключения, содержащие тот же самый класс - это очень плохо. Можно напороться на бесконечный выброс исключения.
0
|
|
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
| 13.12.2014, 14:48 [ТС] | |
|
Ошибки и солюшн.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||||||||||||||
| 13.12.2014, 15:16 | ||||||||||||||||
Сообщение было отмечено Бендерродригез как решение
Решение
Бендерродригез, у тебя в самом верху подключается Array.h, а он в свою очередь подключает Errors.h. Т.е. Errors.h подключается одним из первых. А Errors.h требует определение класса String, которого нет. Вот и ошибка. Нужно перенести определение методов из Array.h таким образом, чтобы они видели полное определение класса String.
В связи с тем, что все это шаблоны, подключение становится все более нетривиальным и ошибкоопасным. Что будет когда количество файлов возрастет, скажем, до 10... Поэтому самое нормальное решение, которое я могу посоветовать в этой ситуации - отказаться от класса String в качестве хранилища текста ошибки в исключении. Добавлено через 10 минут Бендерродригез, помимо этого там еще есть ошибки не связанные с подключением. ошибка раз:
ошибка четыре: В классе Array не реализован чистовиртуальный метод Size, хотя объект типа Array<> в паре мест возвращается по значению.
1
|
||||||||||||||||
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
| 13.12.2014, 15:19 [ТС] | |
|
Array был написан просто как затычка, на скорую руку, но за замечания спасибо.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 13.12.2014, 15:21 | |
|
Бендерродригез, Приложил исправления, которые нашел.
1
|
|
| 13.12.2014, 15:21 | |
|
Помогаю со студенческими работами здесь
8
Порядок Хедеров Компоновка хедеров Циклическое подключение хедеров Правильное подключение style.css (регистрация и подключение) Правильное подключение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных выбран регистр накопления, в. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|