Содержание
- 2. Nortel Networks Confidential Виртуальные функции Интерфейсные функции (public) Их можно заместить в каждом производном классе class
- 3. Nortel Networks Confidential Пример void Employee::print() const { cout } void Programmer::print() const { Employee::print(); cout
- 4. Nortel Networks Confidential Пример (продолжение) void print_emp(const Employee* pEmp) { cout pEmp->print(); } int main() {
- 5. Nortel Networks Confidential Virtual function table (vtbl) vtbl: Объект класса Programmer Объект класса Employee
- 6. Nortel Networks Confidential Когда используется виртуальность Employee emp(“Vasya”, “Pupkin”); Programmer prog(“Ivan”, “Sidorov”, “GM12”); emp.print(); // нет,
- 7. Nortel Networks Confidential Более сложный пример // массив указателей на Employee, размер void give_a_bonus(Employee *list[], int
- 8. Nortel Networks Confidential Более сложный пример - 2 class Unit { public: virtual bool action() {return
- 9. Nortel Networks Confidential Абстрактные классы class Cosmetics { public: virtual void make_up() = 0; virtual void
- 10. Nortel Networks Confidential Абстрактные классы (продолжение) Cosmetics cosmo; Lipstick lips; Mascara masc; WaterRes_Mascara wr_masc; Plain_Mascara plain_masc;
- 11. Nortel Networks Confidential class Shaver { public: virtual void shave() = 0; virtual void reload() =
- 12. Nortel Networks Confidential Абстрактные классы (продолжение) Абстрактный класс – это чистый интерфейс Класс асбтрактный, если есть
- 14. Скачать презентацию