, , - . , - , .
, , , - . - ..
, - . , ( ) , virtual .
, , . .
, , , . ( virtual ).
()
virtual, . , .
, , . , . , , .
, .
:
- , , .
- , .
:
class A // { public: virtual void VirtMetod1(); // void Metod2(); // };void A::VirtMetod() { cout << " A::VirtMetod1\n";} void A::Metod2() { cout << " A::Metod2\n"; } class B: public A // {public: void VirtMetod1(); // void Metod2(); // };void B::VirtMetod1() { cout << "B::VirtMetod1\n";}void B::Metod2() { cout << "B::Metod2\n"; }void main() { B aB; // B B *pB = &aB; // B A *pA = &aB; // A pA->VirtMetod1(); // VirtMetod B pB->VirtMetod1(); // VirtMetod B pA->Metod2(); // Metod2 A pB->Metod2(); // Metod2 B}:
|
|
,
=0.:
virtual void F1(int) =0;, . ++ . , , , .
:
class A{public: A(); A (const A&); virtual A* virt_object1 () { return new A(); } virtual A* virt_object2 () { return new A(*this); }}. .
virtual void f()=0; //
. ,