Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Yaroslav |
16.5.2011, 14:18
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 15.2.2011 Пользователь №: 2412 Спасибо сказали: 0 раз(а) Репутация: 0
|
у меня возникает такой вопрос ...:
Есть два класса .. class Base { } class Child: public Base { } int main() { Base *pt = new Child; } где можно использовать такой тип создания объекта?? Что дает такое создание??? Спасибо.. |
|
|
|
|
RazrFalcon |
16.5.2011, 15:59
Сообщение
#2
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
Если я правильно понял, то это банальное наследование классов.
Вы поучаете в классе Child возможность использовать функции из Base. |
|
|
|
|
Iron Bug |
16.5.2011, 17:48
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
да, всё верно.
даёт лишь возможность динамического приведения к типу Child*: Child *pt2 = dynamic_cast<Child*>(pt); и pt2 будет ненулевым. |
|
|
|
|
Litkevich Yuriy |
16.5.2011, 20:00
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(Yaroslav @ 16.5.2011, 17:18) Link где можно использовать такой тип создания объекта?? Что дает такое создание??? да объект-то тут простой. Только указатель на базовый класс инициализируется объектом-наследником.Это из области под названием полиморфизм (многоформие) Обычно он используется внутри функций. Т.к. наследники (обычно) наследуют все методы базового класса, то можно написать такую (для примера) функцию: где someMethod() - метод базового класса. Все наследники (обычно) наследуют этот метод. Тогда, какой бы наследник не создали, его можно будет передать внутрь этой функции.
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 12:18 |