.


:




:

































 

 

 

 





' , , . ' . V- '. vptr- . ³ ' . ' vptr , . vptr , '. Speak Dog. ' 䳺 , , . , ' . ³ . ' , , , . ϳ , ' . : , . , ' , ' . clone(), . ³ ' '. clone() , , clone() ' .

class Mammal{

public:

virtual Mammal* Clone(){return new Mammal (*this);}

};

class Dog:public Mammal{

public:

Mammal *Clone(){retrun new Dog(*this)};

};

 

V-, .

 

: , "" "". fly(); Mammal "", 2 " " "" "", . "" . 䳺 " " "". , "", 쳺 .

':

- - "" "" "". - - fly .

- - - move , - - fly. - move - , - fly - .

- - fly , - - . -

 

class Horse{

public:

void Gallop();

void Winny();

virtual void Fly();

};

class Pegasus:public Horse{

public:

void Fly(...);

}; // ,

.

. .

class Pegasus:public Horse, public Bird{...};

 

' . ' . . , , .

class A{

public:

int F();

};

class B{

public:

int F();

};

class C: public A, public B{

A::F();

B::F();

};

 

.

 

³

, . ++ , 2 , . . . ,

class Animal{...};

class Horse:Virtual public Animal{...};

class Bird:virtual public Animal{...};

class Pegasus: public Horse, public Bird{...};

 

: ' - . ' . .

clsass B{

public:

int Q();

};

class C: virtual public B{

public:

Q();

};

class D:public C{...};

class F:public D{

B::Q(); // B

Q(); //

};

 

- Q B . F - Q . - Q B . ++ . . . . '. , . ³ .

 

, .

virtual void

- , . '. , . - ( ) - , .

 

....

 

. г . .

 





:


: 2016-07-29; !; : 1195 |


:

:

, , . , .
==> ...

1747 - | 1591 -


© 2015-2024 lektsii.org - -

: 0.02 .