ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Pegasus ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: ΡΠ²Π΅Ρ ΠΊΡΡΠ»Π°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ, Π΅Π³ΠΎ ΡΠΎΡΡ (Π² ΡΡΡΠ°Ρ ); Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΠΈΠ³ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΌΠΈΡΠ½ΠΎ ΠΏΠ°ΡΠ΅ΡΡΡ Π½Π° ΠΏΠ°ΡΡΠ±ΠΈΡΠ΅; ΡΠΈΡΠ»ΠΎ Π»ΡΠ΄Π΅ΠΉ, Π²Π΅ΡΡΡΠΈΡ Π² ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ΅Π³Π°ΡΠ°,
ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ. Π ΡΡΡΠΎΠΊΠ΅ 87 ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ Horse (ΡΠ²Π΅Ρ, ΡΠΎΡΡ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ). Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΡΡΡ, ΠΎΡΠ½ΠΎΡΡΡΠ°ΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ Bird: ΡΠ²Π΅Ρ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΡΡΠΎΠΊΠ΅ 89 ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ itsNumberBelievers, ΠΎΡΠ½ΠΎΡΡΡΠ°ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΊΠ»Π°ΡΡΡ Pegasus.
ΠΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Horse Π² ΡΡΡΠΎΠΊΠ΅ 87 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ 38. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° age ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Horse ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ itsAge, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ Horse ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Animal. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Π° ΠΊΠ»Π°ΡΡΠ° Horse β itsColor ΠΈ itsHeight.
ΠΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Bird Π² ΡΡΡΠΎΠΊΠ΅ 88 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ 60. Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ age ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠ»Π΅Π½Π°, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ Bird ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Animal.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ²Π΅ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Pegasus ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ -ΡΠ»Π΅Π½ΠΎΠ² ΠΎΠ±ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², Bird ΠΈ Horse. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ age ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ itsAge ΠΎΠ±ΠΎΠΈΡ ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠΌΠΈ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Animal.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.5 ΡΠ΅ΡΠ°Π»Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ getAge() Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Pegasus. ΠΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Animal.
Π C++ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Π½Π΅ Ρ Π΄Π²ΡΠΌΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΈΡ. 13.2, Π° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠΈΠΌ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ (ΡΠΈΡ. 13.3).
Π ΠΈΡ. 13.3. ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡ Animal Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Horse ΠΈ Bird. ΠΠ»Π°ΡΡ Animal ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ. Π ΠΊΠ»Π°ΡΡΠ°Ρ Horse ΠΈ Bird ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Animal. ΠΠ»Π°ΡΡ Pegasus ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ±ΡΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ Π½Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΎΡ Π½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ², Π° ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡ Animal ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Horse ΠΈ Bird, Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Pegasus. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Horse ΠΈ Bird ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Animal, Π½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Pegasus ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΈΡΡΠΈΠ½Π³ 13.6 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 13.5, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΈΡΡΠΈΠ½Π³. 13.6. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
1: // ΠΠΈΡΡΠΈΠ½Π³ 13.6.
2: // ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
3: #include <iostream.h>
4:
5: typedef int HANDS;
6: enum COLOR { Red, Green, Blue, Yellow, White, Black, Brown } ;
7:
8: class Animal // ΠΎΠ±ΡΠΈΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² horse ΠΈ bird
9: {
10: public:
11: Animal(int);
12: virtual ~Animal() { cout << "Animal destructor...\n"; }
13: virtual int GetAge() const { return itsAge; }
14: virtual void SetAge(int age) { itsAge = age; )
15: private:
16: int itsAge;
17: };
18:
19: Animal::Animal(int age):
20: itsAge(age)
21: {
22: cout << "Animal constructor...\n";
23: }
24:
25: class Horse : virtual public Animal
26: {
27: public:
28: Horse(C0L0R color, HANDS height, int age);
29: virtual ^Horse() { cout << "Horse destructor...\n"; }
30: virtual void Whinny()const { cout << "Whinny!... "; }
31: virtual HANDS GetHeight() const { return itsHeight; }
32: virtual COLOR GetColor() const { return itsColor; }
33: protected:
34: HANDS itsHeight;
35: COLOR itsColor;
36: };
37:
38: Horse::Horse(C0L0R color, HANDS height, intage):
39: Animal(age),
40: itsColor(color),itsHeight(height)
41: {
42: cout << "Horse constructor...\n";
43: }
44:
45: class Bird : virtual public Animal
46: {
47: public:
48: Bird(COLOR color, bool migrates, int age);
49: virtual ~Bird() { cout << "Bird destructor...\n"; }
50: virtual void Chirp()const { cout << "Chirp... "; }
51: virtual void Fly()const
52: { cout << "I can fly! I can fly! I can fly! "; }
53: virtual COLOR GetColor()const { return itsColor; }
54: virtual bool GetMigration() const { return itsMigration; }
55: protected:
56: COLOR itsColor;
57: bool itsMigration;
58: };
59:
60: Bird;:Bird(COLOR color, bool migrates, int age):
61: Animal(age),
62: itsColor(color), itsMigration(migrates)
63: {
64: cout << "Bird constructor...\n";
65: }
66:
67: class Pegasus : public Horse, public Bird
68: {
69: public:
70: void Chirp()const { Whinny(); }
71: Pegasus(COLOR, HANDS, bool, long, int);
72: virtual ~Pegasus() { cout << "Pegasus destructor...\n";}
73: virtual long GetNumberBelievers() const
74: { return itsNumberBelievers; }
75: virtual COLOR GetColor()const { return Horse::itsColor; }
76: private:
77: long itsNumberBelievers;
78: };
79:
80: Pegasus::Pegasus(
81: COLOR aColor,
82: HANDS heigbt,
83: bool migrates,
84: long NumBelieve,
85: int age):
86: Horse(aColor, height,age),
87: Bird(aColor, migrates,age),
88: Animal(age*2),
89: itsNumberBelievers(NumBelieve)
90: {
91: cout << "Pegasus constructor...\n";
92: }
93:
94: int main()
95: {
96: Pegasus *pPeg = new Pegasus(Red, 5, true, 10, 2);
97: int age = pPeg->GetAge();
98: cout << "This pegasus is " << age << " years old.\n";
99: delete pPeg:
100: return 0;
101: }
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Animal constructor...
Horse constructor...
Bird constructor. . .
Pegasus constructor...
Tnis pegasus is 4 years old.
Pegasus destructor...
Bird destructor...
Horse destructor...
Animal destructor...
ΠΠ½Π°Π»ΠΈΠ·: Π ΡΡΡΠΎΠΊΠ΅ 25 ΠΊΠ»Π°ΡΡ Horse Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Animal, Π° Π² ΡΡΡΠΎΠΊΠ΅ 45 ΡΠ°ΠΊ ΠΆΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ Bird. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΎΠ±ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΊΠ»Π°ΡΡ Animal. ΠΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Pegasus, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Animal, ΠΎΡΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π£Π±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π½Π° ΡΠΊΡΠ°Π½. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ itsAge ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 2, Π½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Pegasus ΡΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΡΠΎΠΊΠ° 98 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 4.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΠΊΠ»Π°ΡΡΠ΅ Pegasus Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ GetAge() Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Animal. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ GetColor() ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΠΎΠ±ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠ°Ρ , Horse ΠΈ Bird.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
Π₯ΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ Π½Π΅ΠΎΡ ΠΎΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π³ΠΎ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ C++ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅; ΡΡΠΎ ΠΎΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΡΠ°Π²Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΡΡΠ΅ΠΊΡΠΎΠΌ.
Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°
Π§ΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ .
ΠΡΠΈΠΌΠ΅Ρ 1:
classHorse : virtual public Animal class Bird : virtual public Animal '. class Pegasus: public Horse,public Bird
ΠΡΠΈΠΌΠ΅Ρ 2:
class Schnauzer : virtual public 0og class Poodle ; virtual public 0og class Schnoodle : public Schnauzer, publiΡ Poodle
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ:ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ»Π°ΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π³Π°Π½ΡΠ½Π΅Π΅ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π΄Π΅ΡΡΡ:ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ»Π°ΡΡΡ-ΠΌΠ°Π½Π΄Π°ΡΡ
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΌΠ°Π½Π΄Π°ΡΠΎΠ². Π’Π°ΠΊ, ΠΊΠ»Π°ΡΡ Horse ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΡ Π΄Π²ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² β Animal ΠΈ Displayable, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅.