// Futtasd így, majd egyesével aktiválva az 1-3-ig jelölt kommentezett sorokat. #include #include struct A{ void print(){std::cout<<"A\n";} // értelemszerűen //-be kerül, ha a következő sor él //virtual void print(){std::cout<<"A\n";} // 1. szedd ki a //-t, futtasd újra ~A(){std::cout<<"~A\n";} // értelemszerűen //-be kerül, ha a következő sor él //virtual ~A(){std::cout<<"~A\n";} // 3. }; struct B:public A{ void print(){std::cout<<"B\n";} ~B(){std::cout<<"~B\n";} }; struct C:public A{ void print(){std::cout<<"C\n";} ~C(){std::cout<<"~C\n";} }; int main() { std::vector t(4); C c; t[0]=new A; t[1]=new B; t[2]=new C; t[3]=&c; for(unsigned i=0; i!=4;++i) t[i]->print(); //AAAA //for(unsigned i=0; i!=3 /*!!!!*/;++i) delete t[i]; //~A~A~A 2. } //~C~A c-re