polymorphic base class
class TimeKeeper {
public:
TimeKeepr();
virtual ~TimeKeeper();
...
};
class AtomicClock: public TimeKeeper { ... };
class WaterClock: public TimeKeeper { ... };
class WristWatch: public TimeKeeper { ... };
abstract class
class AWOV {
public:
virtual ~AWOV() = 0;
};
polymorphic base class should declare virtual destructors. If a class has any virtual functions, it should have a virtual destrucor.