![]() |
|
![]() ![]() ![]() |
|
stjoker |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 11.7.2011 Репутация: нет Всего: нет |
Есть два класса: список и элемент списка. При компиляции вылетают следующие ошибки:
[BCC32 Error] Chain.h(10): E2303 Type name expected [BCC32 Error] Chain.h(10): E2139 Declaration missing ; [BCC32 Error] Chain.h(15): E2238 Multiple declaration for 'Chain::Point' [BCC32 Error] Chain.h(10): E2344 Earlier declaration of 'Chain::Point' [BCC32 Error] Chain.h(15): E2139 Declaration missing ; [BCC32 Error] Chain.h(19): E2293 ) expected Попытка использования list из STL дала только: [BCC32 Error] Unit1.cpp(19): E2401 Invalid template argument list Что делать? Список:
И элемент списка, который наследуют ещё три класса:
|
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 3 Всего: 85 |
stjoker, У вас не включается #include "Shape.h"
1. Проверьте правильность имени. Shape.h далжна соответствовать второму файлу приведенному вами. скорей всего надо Shapes.h (вершина телепатии!) сужу по #ifndef SHAPESH 2. Либо где-то определен макрос SHAPESH, и поэтому не включается "Shape.h" |
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
stjoker, ещё пару замечаний:
1. для виртуальных функций необязательно писать тело, можно просто указать =0, т.е. то, что она абстрактная
2. У базового класса Point должен быть виртуальный деструктор, потому, что сейчас при таком коде
произойдёт утечка памяти, т.к. вызовется только деструктор Point'а, а Circle'а - нет. 3. Для включения указателя на класс или на структуру в другой класс (в данном случае включение Point *pPoint; в класс Chain) необязательно включать h-ник, в котором он описан. Достаточно написать перед определением класса
А уже при использовании его методов с cpp-шнике необходимо будет include'ать Shape.h (или Shapes.h, как говорят телепаты ![]() 4. Тебе этот велосипед класс Chain нужен исключительно в учебных целях ? Если нет, то несмотря на советую использовать std::list. Покажи, что у тебя там за ошибка... В смысле код из Unit1.cpp -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
stjoker |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 11.7.2011 Репутация: нет Всего: нет |
Господа телепаты...) Класс Point описан именно в Shape.h.
Добавление строчки
Результатов не дало. Была попытка свалить всё в один файл, вплоть до того, что бы классы описывались рядом. Это не помогло, тот же набор ошибок. При использовании класса list
Видим: [BCC32 Error] Unit1.cpp(19): E2401 Invalid template argument list |
||||
|
|||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
Может Point пересекается с каким-то системным именем... Переименуй свой класс, например в MyPoint. И выложи все исходники, относящиеся к проблеме - и h-ники и cpp-шники
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
stjoker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 11.7.2011 Репутация: нет Всего: нет |
Яхууууууууу!
![]() ![]() Самое забавное, что в Microsoft Visual Studio 2008 этот код прекрасно компилируется... |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
дык, если студию юзаешь, нафига тебе дебилдер ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
А что тут забавного? Совпадает только то, что связано с С/С++. А вот реализация компилятора и реализация различных классов (VCL/MFC) разные. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
Кстати, посмотрел help по VCL - Point определён как
а т.к. у дебилдера в h-никах частенько встречается
то нечего удивляться, что многие твои классы/структуры будут пересекаться с VCL-ными Да и то дааааааалеко не всё. Пример
такой код в дебилдере компилируется и работает, а в студии - нет. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Ну я вообще про чисты С/С++ говорил. А STL это уже не то. Тут реализации могут отличаться.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
stjoker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 11.7.2011 Репутация: нет Всего: нет |
Я б рад в студии, но попросили эту муть конкретно на билдере реализовать... Это сообщение отредактировал(а) stjoker - 12.7.2011, 12:54 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
Я, наверное, что-то пропустил ? STL - часть Си++, описание её интерфейсов входит в стандарт. Внутренняя реализация - согласен может быть какой хочешь, а интерфейсы должны полностью соответствеовать стандарту. У меня, кстати, ещё примеров несоответствия - как у дурака пряников. Вот ещё пример:
в билдере компилируется, в студии (если не разремить) - нет. Да, много чего ещё... В принципе, если писать по стандарту, то поведение компиляторов более или менее одинаковое, но не разбираясь в тонкостях стандарта, и работая с билдером - будешь уверен, что пишешь правильно, хотя это - не так. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Это то понятно. Я просто всё это говорил к тому, что stjoker в Билдере, скорее всего, писал с использованием VCL, с которым и возникают конфликты (т.к. там целая гора разнообразных классов). В студии же, если он не использовал MFC, конфликтов быть не должно.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
> В студии же, если он не использовал
MFC, конфликтов быть не должно. Где тут смайлик с зелёным человечком, которого тошнит? MFC ещё кто-нить использует??? Ответьте на вопрос все, плиз. Не создавать же для этого тему, тем более, что ТС, вроде, удовлетворён ![]() -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Ага ![]() Ну, да, ладно. Хватит флудить ![]() ![]() -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |