.


:




:

































 

 

 

 


()




.

. , 2- . . .

class X1 {... };

class X2 {... };

class X3 {... };

class Y1: public X1, public X2, public X3 {... };

.

. . :

class X {...;

f ();

...

};

class Y:

public X {... };

class Z:

public X {... };

class D:

public Y, public Z {... };

D.

. , D , : D::Y::X::f() D::Z::X::f(). D Y::X::f() Z::X::f(), .

, . virtual. , :

class X {...

f();

...

};

class Y:

virtual public X {... };

class Z:

virtual public X {... };

class D:

public Y, public Z {... };

D , Y Z.

, . < > .

, , .

class X {... };

class Y:

virtual public X {... };

class Z:

virtual public X {... };

class B:

virtual public X {... };

class C:

virtual public X {... };

class E:

public X {... };

class D:

public X {... };

class A:

public D, public B, public Y, public Z, public C, public E {... };

: , B, Y, C, Z, D E. , , , .

. :

class BB {... };

class AA:

virtual public BB {... };

class CC:

virtual public BB {... };

class DD: public AA, public CC, public virtual BB {... };

. - . , . :

class X { public: int d;... };

class Y { public: int d;... };

class Z: public X, public Y,

{

public:

int d;...d=X::d + Y::d;...

};

, . , TeddyBear ( ) : ToyAnimal ( ) ZooAnimal, Bear:

class Character {... }; // class BookCharacter: public Character {... }; // class ToyAnimal {... }; // class TeddyBear: public BookCharacter, public Bear, public virtual ToyAnimal {... };

. 18.5, , .

. 18.5. TeddyBear

. BookCharacter, Bear ToyAnimal. , .. . , BookCharacter Character, BookCharacter. Bear ZooAnimal, Bear.

TeddyBear : ZooAnimal, ToyAnimal.

, , : BookCharacter, Bear. BookCharacter Character.

:

TeddyBear Paddington;

:

ZooAnimal(); // Bear ToyAnimal(); // Character(); // BookCharacter BookCharacter(); // Bear(); // TeddyBear(); //

ZooAnimal ToyAnimal TeddyBear Paddington.

( ) . , , .

 

 






:


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


:

:

: , .
==> ...

770 - | 731 -


© 2015-2024 lektsii.org - -

: 0.009 .