
- •Наследование
- •Иерархия классов
- •Переопределенные методы
- •Переопределенные методы
- •Переопределенные методы
- •Поля объектов в иерархии
- •классов
- •Переопределенные методы
- •Пример2 Иерархия классов наследования 12
- •Пример2 Иерархия классов наследования 14
- •Пример3 Иерархия классов наследования15
- •Пример3 Взаимодействие производных
- •Пример3 Иерархия ресурсоемких классов 21
- •Пример4 Иерархия ресурсоемких классов 24
- •Виртуальные функции
- •Виртуальные функции
- •Виртуальные функции
- •Пример2 Виртуальные переопределенные 29 функции классов при наследовании
- •Виртуальные функции
- •Виртуальные функции
- •Пример3 Виртуальные переопределенные 32 функции классов при наследовании
- •Пример4 Иерархия классов с
- •Пример4 Иерархия классов с
- •Пример4 Иерархия классов с

Пример4 Иерархия классов с |
34 |
виртуальными функциями при |
|
наследовании. Продолжение |
|
class C : public B { protected :
int c; public :
[virtual] void input() { B :: input();
cout << “ c=“ ; cin >> c;
}
[virtual] int show() { return c; }
};
void output1( A z)
{ cout << z.show () << endl; }
void output2( A & z)
{ cout << z.show () << endl; }
void output3( A * p)
{ cout << p -> show () << endl; }

Пример4 Иерархия классов с |
35 |
виртуальными функциями при |
|
наследовании. Окончание |
|
void main ()
{ A aa; B bb; C cc;
// определяющим является тип объекта
aa.input(); |
// ввод a |
bb.input(); |
// ввод a и b |
cc.input(); |
// ввод a, b и c |
cout << aa.showall() << endl; |
// вывод a |
cout << bb.showall() << endl; |
// вывод b |
cout << cc.showall() << endl; |
// вывод c |
cout << aa.show() << endl; // вывод a cout << bb.show() << endl; // вывод b cout << cc.show() << endl; // вывод c
//определяющим является тип
//параметра функции
output1(aa); |
// вывод a |
output1(bb); |
// вывод a |
output1(cc); |
// вывод a |
//определяющим является тип
//аргумента (объекта) при вызове функции
output2(aa); |
// вывод a |
output2(bb); |
// вывод b |
output2(cc); |
// вывод c |
output3(&aa); |
// вывод a |
output3(&bb); |
// вывод b |
output3(&cc); // вывод c } // конец main()