765sese:条款7 为多态基类声明virtual析构函数

条款7 为多态基类声明virtual析构函数

如有以下关系,不使用virtual关系会出现资源泄漏

//base classclass TimeKeeper{ public: virtual TimeKeeper* getTimeKeeper() { return NULL; }};class AtomTimeKeeper: public TimeKeeper{ public: AtomTimeKeeper(){ pData=new char[100]; } TimeKeeper* getTimeKeeper() { return myAtom; } private: int a; char * pData; static AtomTimeKeeper* myAtom;};AtomTimeKeeper* AtomTimeKeeper::myAtom = new AtomTimeKeeper();int main(){ AtomTimeKeeper myAtom; TimeKeeper* pTime=myAtom. getTimeKeeper(); delete pTime;//这将引起部分内存泄漏 return 0;}

相关推荐

相关文章