Множественное наследование
Существует возможность производить новые классы более чем от одного базового класса. Такой процесс называется множественным наследованием. Чтобы произвести подобный класс, базовые классы в объявлении разделяются запятыми. В листинге 13.3 класс Pegasus объявлен таким образом, что наследует свойства двух базовых классов — Bird и Horse. Затем программа добавляет объект Pegasus в списки объектов обоих классов.
Листинг 13.3. Множественное наследование
1: // Листинг 13.3. Множественное наследование.
2: // Множественное наследование
3:
4: #include
5:
6: class Horse
7: {
8: public:
9: Horse { cout << "Horse constructor... "; }
10: virtual ~Horse { cout << "Horse destructor... "; }
11: virtual void Whinny const { cout << "Whinny!... "; }
12: private:
13: int itsAge;
14: };
15:
16: class Bird
17: {
18: public:
19: Bird { cout << "Bird constructor... "; }
20: virtual ~Bird { cout << "Bird destructor... "; }
21: virtual void Chirp const { cout << "Chirp... "; }
22: virtual void Fly const
23: {
24: cout << "I can fly! I can fly! I can fly! ";
25: }
26: private:
27: int itsWeight;
28: };
29:
30: class Pegasus : public Horse, public Bird
31: {
32: public:
33: void Chirp const { Whinny; }
34: Pegasus { cout << "Pegasus constructor... "; }
35: ~Pegasus { cout << "Pegasus destructor... "; }
36: };
37:
38: const int MagicNumber = 2;
39: int main
40: {
41: Horse* Ranch[MagicNumber];
42: Bird* Aviary[MagicNumber];
43: Horse * pHorse;
44: Bird * pBird;
45: int choice,i;