Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpIhDn 76 of 150 menu
◀ ▶

Приведение вниз в C++

Через указатель на базу недоступны методы, объявленные только в потомке.

Если объект на самом деле создан как Student, тип указателя сужают оператором dynamic_cast - это приведение вниз по иерархии. Запишем getGrade у студента и получим указатель Student* из User*:

class User { public: virtual ~User() { } }; class Student : public User { public: int getGrade() { return grade; } private: int grade = 3; };

Создадим объект Student и получим указатель на потомка:

int main() { User* base = new Student(); Student* student = dynamic_cast<Student*>(base); std::cout << student->getGrade() << "\n"; delete base; return 0; }

Пусть переменная User* ссылается на объект Employee.

Приведите указатель к Employee* через dynamic_cast и выведите зарплату сотрудника.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить