0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 18
|
||||||
1 | ||||||
Полиморфизм, наследование24.05.2017, 16:47. Показов 979. Ответов 3
Метки нет (Все метки)
Товарищи, кто может, объясните пожалуйста.
Просят добавить новый тип объектов Trap. Методы в нем объявлены как виртуальные, но в примере я не вижу чтобы Trap наследовался от какого либо заранее созданного класса. А если он не наследуется, то смысл тогда с виртуальных функций? вот тот фрагмент кода, который дан в качестве примера:
0
|
24.05.2017, 16:47 | |
Ответы с готовыми решениями:
3
Наследование, полиморфизм Наследование и полиморфизм Наследование и полиморфизм. Наследование и полиморфизм... |
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
24.05.2017, 17:21 | 2 |
Jim_Hunter, смысл в том, что виртуальные функции важны не для самого класса где они объявлены, а для наследников этого класса. Для самого класса они работают точно так же как обычные, а вот для его наследников... Кстати у наследников функции с таким же названием и аргументами станут виртуальными вне зависимости от того, добавишь ли к ним это ключевое слово или нет...
1
|
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 18
|
|
24.05.2017, 18:16 [ТС] | 3 |
Дело в том что у этого класса нет наследников, и не будет в дальнейшем. Функции Draw и Move уже созданы в другом классе.
Но как видно из фрагмента кода Trap не является наследником другого класса. И есть 2 варианта: первый ваш, что это якобы для будущих наследников класса Trap, и второй: то что trap является наследником класса в котором определены функции Draw и Move(так как это лишь фрагмент кода показали обозначив их как виртуальные, вместо того чтобы написать базовый класс, либо тупо забыли это сделать ). Просто от этого зависит что мне дальше делать. Или мутить отрисовку объектов уже через созданный Draw, или забить на наследование и просто заново в Trap описать все эти методы по-своему.
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|||||||||||
24.05.2017, 19:14 | 4 | ||||||||||
Как бы он и будет базовым классом... Пусть и с определёнными, а не чисто виртуальными функциями, но это не важно. Если наследников создавать для этого класса в обозримом будущем не собираешься то да, "virtual" можно поубирать, от этого чуть производительность повысится.
Добавлено через 4 минуты Если же наследники будут, то для
0
|
24.05.2017, 19:14 | |
24.05.2017, 19:14 | |
Помогаю со студенческими работами здесь
4
Полиморфизм, наследование Наследование и полиморфизм ООП Полиморфизм Наследование Виртуальное наследование и полиморфизм Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |