3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
|
||||||
1 | ||||||
Объявление и определение классов11.09.2013, 19:52. Показов 6741. Ответов 44
Метки нет (Все метки)
Всем здрасти!
Имеем простецкий код:
Если переставить местами классы TailNode и HeadNode, то программа заработает... Но если, после этого нам нужно добавить еще один класс, производный от Node, то нам опять придется определять, где же его расположить, чтобы он определялся до всех своих упоминаний. Так вот - подскажите пожалуйста, как правильно объявить все классы до их определения, чтобы программа могла видеть все созданные классы, независимо от своего расположения? (так как объявил классы я "class Node;" - не помогает).
0
|
11.09.2013, 19:52 | |
Ответы с готовыми решениями:
44
Объявление классов Объявление взаимодействующих классов Объявление статических констант шаблонных классов Работа с классами. Объявление классов наследования - C++ |
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
|
|
11.09.2013, 20:39 [ТС] | 3 |
И какая будет разница, если я все эти классы перенесу в заголовочный файл и прикреплю его? Они также будут определяться в определенном порядке...
0
|
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
|
|
13.09.2013, 15:22 [ТС] | 5 |
Есть еще какие-нибудь варианты решения этой проблемы?
0
|
13.09.2013, 16:16 | 6 | |||||
BESSON_off, скорее всего вот здесь:
Добавлено через 8 минут При наследовании наследуется и конструктор базового класса и пока вы не дали команду компилятору(не разместили описание класса TailNode) конструктор TailNode не вызывает конструктор базового класса и поэтому вы имеете то что видите т.е. подходящего конструтора нет.
0
|
13.09.2013, 17:18 | 8 | ||||||||||
Может просто кто-то что-то не хочет понять...
Это лишь объявление имени класса как такового (с таким определением нельзя использовать его свойства):
Не по теме: alsav22, Разве это не решает проблемы!? Не по теме: По большому счету это было написано для ТС.
0
|
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
|
|
13.09.2013, 20:46 [ТС] | 9 |
А если классов 100 и каждый обращается друг к другу, то вставляя 101 класс (по потребности) вы будете вычислять место куда же его вставить так, чтобы все обращения к нему и от него были после определения его самого и того к кому он обращается? Не верю, что все так запущено...
0
|
alsav22
|
13.09.2013, 22:31
#11
|
Не по теме: Что сегодня за день... Решает. Я кому написал это? Ilot это я написал. Почему я ему это написал? Потому что BESSON_off спрашивает есть ли ещё варианты, кроме того, который предложил castaway, а Ilot, вместо того, чтобы предложить что-либо, описывает почему у ТС это происходит(ТС ещё в первом посте написал почему).
0
|
Jupiter
|
13.09.2013, 22:36
#12
|
Не по теме: alsav22, ваши варианты в студию:bravo:
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
13.09.2013, 23:04 | 13 |
Не по теме: И при чём здесь я? Я что, обещал какие-то варианты? Или писал, что предложенные меня не устраивают? Добавлено через 7 минут Не по теме: Я понял, что сегодня не так... !3-е, пятница...
0
|
14.09.2013, 16:22 | 14 | |||||
0
|
16.09.2013, 09:23 | 15 | ||||||||||
Так я и написал, что бы товарищ прежде чем использовать класс создал конструктор и деструктор для него(для команд new и delete). Как он его будет объявлять это его дело. Но уж если вопрос встал, то можно и так:
Вместо этого:
0
|
alsav22
|
16.09.2013, 11:35
#16
|
0
|
Ilot
|
16.09.2013, 11:49
#17
|
Не по теме: alsav22, в чем собственно проблема? Автору было не понятно почему у него возникает ошибка. Я объяснил.
0
|
alsav22
|
16.09.2013, 12:32
#18
|
0
|
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
|
|
18.09.2013, 15:31 [ТС] | 19 |
Т.е. вы хотите сказать, что создавая класс, эффективнее будет, создать новый CPP-файл, в котором описать этот класс, далее заинклудить его в файле с main-функцией?
0
|
18.09.2013, 15:34 | 20 |
да, надо создать CPP файл
нет, cpp файлы никуда не инклудятся. кто вообще пустил этот вреднейший слух, что если программа разбита на файлы, то их надо инклюдить? их даже компилировать надо каждого по-отдельности!
1
|
18.09.2013, 15:34 | |
18.09.2013, 15:34 | |
Помогаю со студенческими работами здесь
20
Объявление и определение функции Объявление и определение шаблонного класса объявление и определение функции класса Предварительное объявление классов. Вызвать функцию до реализации класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |