An abstract interface
class A {\fbox{A}
public: virtual void operator()() = 0; virtual void value() = 0; virtual void display() = 0; };
class A {\fbox{A}
public: virtual void operator()() = 0; virtual void value() = 0; virtual void display() = 0; };