45 / 30 / 11
Регистрация: 31.10.2009
Сообщений: 200
|
||||||
1 | ||||||
Восходящее преобразование, объяснить код01.07.2014, 07:48. Показов 3413. Ответов 2
Метки нет (Все метки)
Всем привет!
Мне не понятен один момент в восходящем преобразовании. Есть два класса: один базовый, другой производный от базового. В обоих классах есть метод (в производном он перегружен). Так вот если создать объект базового класса и присвоить ему объект производного класса, то для созданного объекта выполняется перегруженная версия метода, а не базовая версия. Почему так? вот простой пример:
Добавлено через 3 часа 19 минут Начал читать главу "полиморфизм". Стало немного проясняться. Как я понял при восходящем преобразовании усекается только интерфейс производного класса до интерфейса базового класса, а все перегруженные методы остаются. Это делается для того, например, чтобы какая-нибудь функция с аргументом типа базовый класс могла принимать все объекты производных классов. Иначе пришлось бы городить кучу функций с одинаковым по смыслу текстом, но с разными типами аргументов.
0
|
01.07.2014, 07:48 | |
Ответы с готовыми решениями:
2
Восходящее преобразование Объяснить код Объяснить код Объяснить код в массивах |
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
|
|
01.07.2014, 13:45 | 3 |
_Eldar_, здесь все логично, нет?
Если метод базового класса не перекроете, вызовется он, иначе вызовется метод производного класса. В чем Вы ищите подвох? Все же понятно и просто =)
0
|
01.07.2014, 13:45 | |
01.07.2014, 13:45 | |
Помогаю со студенческими работами здесь
3
Объяснить код метод getBytes() Нужно объяснить код оллимпиадной задачи Потоки. Объяснить как работает код (dynamic_cast) Восходящее приведение типа.(объяснить принцип работы) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |