|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.11.2014, 22:49 | #1 |
Пользователь
Регистрация: 24.10.2013
Сообщений: 75
|
Чисто виртуальные функции
Какие преимущества дает нам определение чисто виртуальных функций
в базовом классе? например: Код:
|
22.11.2014, 23:42 | #2 |
Пользователь
Регистрация: 03.07.2014
Сообщений: 32
|
Вы имеете в виду по сравнению с вот таким классом с функциями-заглушками?
Код:
Вариант с чисто виртуальными функциями говорит: "Класс Pet - незаконченный, вы не можете создавать объекты этого класса, вы должны наследовать от него новые классы, переопределять там вот эти конкретные функции и создавать объекты тех новых классов" Компилятор будет ругаться, если вы забудете перегрузить функции или попробуете создать класс Pet Вариант с заглушками говорит: "Класс Pet - законченный, вы можете создавать объекты этого класса, вы не обязаны наследовать от него новые классы, переопределять там эти функции, но можете это сделать" Функция-заглушка с пустым телом может иметь смысл. Например, функция rotate, которая поворачивает геометрическую фигуру на плоскости относительно центра фигуры для круга или для точки должна быть именно пустой, т.к. поворот круга вокруг центра - не запрещенное действие и дает тот же круг. |
22.11.2014, 23:47 | #3 | |
Пользователь
Регистрация: 24.10.2013
Сообщений: 75
|
Цитата:
|
|
23.11.2014, 00:06 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
23.11.2014, 00:09 | #5 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Необходимо реализовать базовый класс, у которого есть только одна виртуальная функция-член, и это - его диструктор. При этом необходимо реализовать диструктор "чисто-виртуальным", Потому что по замыслу запрещено создавать объекты базового класса. Далее вам необходимо создать хотя бы одного потомка и заставить программу работать. Если вы не определите туловище базового диструктора - ваш код не сможет работать. Вероятно вы хотели сказать "чисто виртуальная функция в отличии от обычных виртуальных ..." ? Последний раз редактировалось Stilet; 23.11.2014 в 00:18. |
|
23.11.2014, 00:19 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
27.11.2014, 18:05 | #7 |
Пользователь
Регистрация: 03.07.2014
Сообщений: 32
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
виртуальные функции | igoreshka3333 | Помощь студентам | 3 | 01.10.2014 23:44 |
виртуальные функции | zla9_kolu4ka | Общие вопросы C/C++ | 2 | 09.03.2014 03:19 |
виртуальные функции | mixon-21 | Помощь студентам | 1 | 19.09.2013 21:56 |
Виртуальные функции | studprog | Помощь студентам | 2 | 30.09.2012 21:00 |
Виртуальные функции | bigory | Помощь студентам | 2 | 06.06.2009 22:44 |