- #include <iostream> 
- using namespace std; 
-   
- class Base{ 
- public: 
-    Base(){}; 
-    virtual ~Base() {}; 
-    virtual void foomethod()=0; //Marked as pure virtual 
- }; 
-   
- class A : public Base{ 
- public:	 
-    A(){};  //Ctor 
-    virtual ~A(){}; //Dtor 
-    void foomethod(){ cout << "Hello from A"; } 
- }; 
- class B : public Base{ 
- public: 
-    B(){};  //Ctor 
-    virtual ~B(){}; //Dtor 
-    void foomethod(){ /* DO SOMETHING */ } 
- }; 
-   
- int main() { 
-   
- 	// Base obj; // Can't do that 
- 	Base *obj = new A(); 
- 	obj->foomethod(); // A's one 
- 	delete obj; 
-   
-     return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQmFzZXsKcHVibGljOgogICBCYXNlKCl7fTsKICAgdmlydHVhbCB+QmFzZSgpIHt9OwogICB2aXJ0dWFsIHZvaWQgZm9vbWV0aG9kKCk9MDsgLy9NYXJrZWQgYXMgcHVyZSB2aXJ0dWFsCn07CgpjbGFzcyBBIDogcHVibGljIEJhc2V7CnB1YmxpYzoJCiAgIEEoKXt9OyAgLy9DdG9yCiAgIHZpcnR1YWwgfkEoKXt9OyAvL0R0b3IKICAgdm9pZCBmb29tZXRob2QoKXsgY291dCA8PCAiSGVsbG8gZnJvbSBBIjsgfQp9OwpjbGFzcyBCIDogcHVibGljIEJhc2V7CnB1YmxpYzoKICAgQigpe307ICAvL0N0b3IKICAgdmlydHVhbCB+Qigpe307IC8vRHRvcgogICB2b2lkIGZvb21ldGhvZCgpeyAvKiBETyBTT01FVEhJTkcgKi8gfQp9OwoKaW50IG1haW4oKSB7CgkKCS8vIEJhc2Ugb2JqOyAvLyBDYW4ndCBkbyB0aGF0CglCYXNlICpvYmogPSBuZXcgQSgpOwoJb2JqLT5mb29tZXRob2QoKTsgLy8gQSdzIG9uZQoJZGVsZXRlIG9iajsKCQogICAgcmV0dXJuIDA7Cn0=