Скачиваний:
34
Добавлен:
01.05.2014
Размер:
936 б
Скачать
/* Виртуальная функция при наследовании сохраняет свою виртуальную природу 
*/
#include <iostream>
using namespace std;

class base {
public:
    virtual void func()
    {
        cout << "Выполнение функции func() базового класса \n";
    }
};

class derived1 : public base {
public:
    void func()
    {
        cout << "Выполнение функции func() класса derived1\n";
    }
};

// Класс derived1 наследуется классом derived2
class derived2 : public derived1 {
public:
    void func()
    {
        cout << " Выполнение функции func() класса derived2\n";
    }
};

int main()
{
    base *p; 
    base ob; 
    derived1 d_ob1; 
    derived2 d_ob2; 

    p = &ob;
    p->func(); // функция func() базового класса 

    p = &d_ob1;
    p->func(); // функция func() производного класса derived1

    p = &d_ob2;
    p->func(); // функция func() производного класса derived2

    return 0;
}
Соседние файлы в папке Виртуальные функции в С++