Effective C++读书笔记(5)
条款07:为多态基类声明virtual析构函数 Declare destructors virtual inpolymorphic base classes 建立一个 TimeKeeper基类,并为不同的计时方法建立派生类: class TimeKeeper { public: TimeKeeper(); virtual ~TimeKeeper(); ... }; class AtomicClock: public TimeKeeper { ... };//原子钟 class WaterClock: public TimeKeeper { ... };//水钟 class WristWatch: public TimeKeeper { ... };//腕表 TimeKeeper* getTimeKeeper(); //返回一个指针,指向一个TimeKeeper派生类的动态分配对象 TimeKeeper *ptk = getTimeKeeper(); //从TimeKeeper继承体系获得一个动态分配对象 ... //运用它 delete ptk; //释放它,避免资源泄漏 很多客户只是想简单地取得时间而不关心如何计算的细节,所以一个 factoryfunction (工厂函数) ——返回一个指向新建派生类对象的基类指针的函数——可以被用来返回一个指向计时对象的指针