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

来源:互联网 发布:mac什么游戏 编辑:程序博客网 时间:2024/05/16 12:01

条款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;}
0 0