Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2011, 13:01   #1
Elvisnya
Пользователь
 
Аватар для Elvisnya
 
Регистрация: 13.09.2008
Сообщений: 24
Вопрос Предварительное описание класса

Добрый день. Помогите пожалуйста решить проблему на картинке.

Elvisnya вне форума Ответить с цитированием
Старый 01.07.2011, 13:12   #2
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

Если я не ошибаюсь, то подобный трюк с предварителным объявлением сработает только в том случае, если у вас в MyClass хранится указатель на экземпляр класса SubmissionClass.

SubmissionClass *subClass;

А иначе компилятору просто не достает информации о структуре класса SubMission.
Dogmat вне форума Ответить с цитированием
Старый 01.07.2011, 13:24   #3
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию

А почему не хотите избавится от Forward declatations поменяв структуры местами?
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума Ответить с цитированием
Старый 01.07.2011, 13:29   #4
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

Такое бывает, это как предпочтения сначало public описывать или наоборот private. Я раньше сам страдал подобными вещами )
Dogmat вне форума Ответить с цитированием
Старый 01.07.2011, 13:29   #5
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию

Я точно сказать не могу !!! но по моему что бы определить размер MyClass (для выделения памяти) ему(компилятору) надо знать размер SubmissionClass !! В втором примере он неизвестен!!!
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума Ответить с цитированием
Старый 01.07.2011, 13:41   #6
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

Ну разумеется, я об этом и написал. Чтобы скопилировать MyClass ему не хватает информации о его структуре.
Dogmat вне форума Ответить с цитированием
Старый 01.07.2011, 13:58   #7
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию

Dogmat Я с вами не спорю я просто постарался уточнить !
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума Ответить с цитированием
Старый 01.07.2011, 14:06   #8
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

А я тоже не спорю. Забавная у вас подпись)
Dogmat вне форума Ответить с цитированием
Старый 01.07.2011, 14:29   #9
Elvisnya
Пользователь
 
Аватар для Elvisnya
 
Регистрация: 13.09.2008
Сообщений: 24
По умолчанию

Цитата:
А почему не хотите избавится от Forward declatations поменяв структуры местами?
Я новичок в С++. Подумал что чего то недопонимаю. Например, если буду объявлять 10 классов, которые будут связаны между собой, то велика вероятность ошибки компиляции.

Неужели нет, подходящего для данной ситуации, способа предварительного описания классов.
Elvisnya вне форума Ответить с цитированием
Старый 01.07.2011, 14:36   #10
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

зачем вам хранить объект класса? храните указатель на объект класса SubmissionClass, а в конструкторе MyClass создавайте и инициализируйте этот объект (subClass). Ну или заводите на каждый класс отдельный заголовочник и подключайте #include-ом. Насчет 100 связанных между собой классов в одном заголовочнике никогда не задумывался, но сколько пишу разочарований по поводу порядка определения классов не испытывал. Часто их не так уж и много на один заголовочник.

Последний раз редактировалось Dogmat; 01.07.2011 в 14:43.
Dogmat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавит описание класса в *.h фаил? RFbager Общие вопросы C/C++ 10 03.11.2010 10:37
описание класса SvetaLee Помощь студентам 1 30.10.2010 23:27
описание класса в паскале ai\ekcah^p Помощь студентам 0 14.03.2010 17:31
Описание класса. frem-dag Общие вопросы C/C++ 4 11.01.2010 19:53