#include struct A{ A(){std::cout<<"Adef\n";} ~A(){std::cout<<"~A\n";} }; struct B:public A{ B(){std::cout<<"Bdef\n";} ~B(){std::cout<<"~B\n";} }; struct C:public A{ C(){std::cout<<"Cdef\n";} ~C(){std::cout<<"~C\n";} }; int main() { B b; // Adef Bdef C c; // Adef Cdef A a; // Adef a=c; // fordul, de slicing! // b=c; // nem fordul! // c=a; // nem fordul! A *p; p=&a; p=&b; p=&c; } // ~A ~C ~A ~B ~A