15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
|
|||||||||||
1 | |||||||||||
Указатель на виртуальный класс28.08.2010, 22:49. Показов 3782. Ответов 23
Метки нет (Все метки)
Например у меня есть виртуальный класс Food и его нащадок Drink:
0
|
28.08.2010, 22:49 | |
Ответы с готовыми решениями:
23
Указатель на виртуальный метод виртуальный табличный указатель Указатель на указатель, класс группа Виртуальный абстрактный класс |
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
28.08.2010, 22:56 | 2 |
1. Food *Juice, *Wodka;
дело в том, что если не поставить *, то получается объект, а не указатель 2. не виртуальный, а абстрактный, во всяком случае я не слышал про виртуальные классы 3. Vodka ..ну и конструктор у потомка не объявлен
1
|
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
|
|
28.08.2010, 23:00 | 3 |
А также не плохо бы предусмотреть пустой конструктор для Food
1
|
1080 / 1007 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
|
|
28.08.2010, 23:35 | 4 |
Сдесь че-то не заметил виртуальные классы. Только функции.
Я тоже до какого-то момента не слышал.
0
|
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
|
|
28.08.2010, 23:40 [ТС] | 5 |
Спасибо за ответы. У меня еще одна "странность" - после добавления перед main:
0
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||
28.08.2010, 23:41 | 6 | |||||
1) Объявлять переменные подобным образом
2) Деструктор у Food должен быть виртуальным, иначе будет утечка при освобождении памяти через указатель на базовый класс.
1
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
28.08.2010, 23:45 | 7 |
и что же это?
правильно, но тут и ресурсов то нет каких? у меня ничего не выдает
0
|
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
|
|
28.08.2010, 23:55 [ТС] | 8 |
А строка using namespace std у Вас есть? Если я ее убираю тогда предупреждений нет, но стрінг в параметрах не понимает
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
28.08.2010, 23:58 | 9 |
напишите код и ошибки, иначе не понять
0
|
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
|
||||||
29.08.2010, 00:15 [ТС] | 11 | |||||
Вот такой сейчас код целиком:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
29.08.2010, 00:29 | 13 |
и деструкторов, если чтото объявляете, то надо и описывать, иначе будут ошибки линковки
1
|
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
|
||||||
29.08.2010, 00:41 [ТС] | 14 | |||||
Переучился Нужно ложиться спать...
Спаибо, все переделал:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
29.08.2010, 00:44 | 15 |
какой компилятор и какие предупреждения, ни gcc с полным набором опций, ни VS ничего не выдают
(gcc правда говорил о лишних ; ))))
0
|
Евгений М.
|
29.08.2010, 00:46
#16
|
1
|
alex_x_x
|
29.08.2010, 00:49
#17
|
Не по теме: Евгений М., те виртуальный, но не абстрактный?
0
|
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
|
||||||
29.08.2010, 00:51 [ТС] | 18 | |||||
Компилятор VS 6.0. Вот предупреждения (при нажатии F4 показывает файлы с описанием и декларациями):
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
29.08.2010, 00:54 | 19 |
дремучий у вас компилятор, после раскрытия полного имени через шаблоны map <string, Food*> и ему подобные не влезают в 255 символов, не знаю, с VC6 не работаю
0
|
Евгений М.
|
29.08.2010, 00:54
Указатель на виртуальный класс
#20
|
0
|
29.08.2010, 00:54 | |
Виртуальный базовый класс Базовый виртуальный класс Виртуальный класс. Сигналы Как преобразовать указатель на класс к указателю на асбтрактный класс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |