Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class A{
- public:
- A() { cout<<"A ctor"<<endl; }
- virtual ~A()=0 { cout<<"A dtor"<<endl; }
- virtual void f(A*) { cout<<"A's f"<<endl; }
- };
- class B: public A{
- public:
- B():A() { cout<<"B ctor"<<endl; }
- virtual ~B() { cout<<"B dtor"<<endl; }
- virtual void f(A*) {cout<<"B's f"<<endl;}
- };
- class C: public A{
- public:
- C():A() { cout<<"C ctor"<<endl; }
- virtual void f(A*) {cout<<"C's f"<<endl;}
- virtual ~C() { cout<<"C dtor"<<endl; }
- };
- int main()
- {
- //A *ap= new A(); - compilation error
- A *bp= new B();
- A *cp= new C();
- bp->f(cp);
- delete bp;
- delete cp;
- return 0;
- }
- OUTPUT:
- A ctor
- B ctor
- A ctor
- C ctor
- B's f
- B dtor
- A dtor
- C dtor
- A dtor
Add Comment
Please, Sign In to add comment