8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Conflicting declaration при предварительным объявлением класса03.01.2013, 16:29. Показов 11265. Ответов 8
Метки нет (Все метки)
Здравствуйте! Есть проблема при компиляции кода который использует forward declaration для избежания зацикливания хедеров, код выглядит приблизительно следующим образом:
header_b.h
0
|
03.01.2013, 16:29 | |
Ответы с готовыми решениями:
8
Программа, которая будет добавлять структуры заказчиков в стек и удалять из стека, представленного объявлением класса Stack Проблемы с объявлением функции-члена класса Ошибки "Declaration syntax error" и "Multiple declaration" при компиляции проекта [DCC Error] E2037 Declaration of 'SelectFitFromObzor' differs from previous declaration |
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||||||
03.01.2013, 16:34 | 2 | |||||
На созданные в typedef идентификаторы заранее сослаться не выйдет. Так что в месте, где проблема, надо было писать
0
|
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
|
||||||
03.01.2013, 16:55 [ТС] | 3 | |||||
Теперь пишет что:
0
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
03.01.2013, 17:17 | 4 |
Есть подозрение, что в этом месте недоступна реализация конструктора base_string(). Одного объявления мало, тут происходит инстанциация шаблона и нужен полный текст.
0
|
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
|
||||||
03.01.2013, 17:28 [ТС] | 5 | |||||
После того как закомментировал следующий код:
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
03.01.2013, 17:41 | 6 |
Ага. Надо. Такие дела. Частичная специализация шаблона создаёт совершенно новый класс, который может иметь совершенно другой набор полей, методов, наследоваться от чего-то другого и т. д.
0
|
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
|
|
03.01.2013, 18:24 [ТС] | 7 |
и что никак нельзя сделать так чтобы не дублировать все методы т.к. их там более чем дофига?
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
03.01.2013, 18:33 | 8 |
Неа. Workaround: вынести изменяемую часть целиком в отдельный класс, в котором методов мало, и зачастичношаблонить уже его, а потом этот класс передать (шаблоном, интерфейсом, как угодн) классу, где методов дофига.
0
|
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
|
|
03.01.2013, 18:47 [ТС] | 9 |
0
|
03.01.2013, 18:47 | |
03.01.2013, 18:47 | |
Помогаю со студенческими работами здесь
9
Ошибка: declaration of 'Init' differs from previous declaration Ошибка Declaration of 'Button1' differs from previous declaration Описание класса, ошибка "Forward declaration not solved" Ошибка при компилировании Declaration terminated incorrectly Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |