Scott Meyers:世界顶级的C++软件开发技术权威之一。他是两本畅销书Effective C++和More Effective C++的作者,以前曾经是C++ Report的专栏作家。他经常为C/C++ Users Journal和Dr. Dobb's Journal撰稿,也为全球范围内的客户做咨询活动。他也是Advisory Boards for NumeriX LLC和InfoCruiser公司的成员。他拥有Brown University的计算机科学博士学位。
据说这小子说过如题的话,我觉得还是有点道理。
最近写个程序,基类指针指向一个new动态分配的子类对象,释放时子类的析够函数没被调用,纳闷了。
Base *p_base = new Derived();
delete p_base;
我就用向下类型转换来解决这个问题,但心中总有些犹豫。
delete dynamic_cast<Derived *>(p_base);
很多时候会忘记这个转换的,那么少了个析够函数的调用会导致诸多问题,有没有自动的解决办法呢,自己也没有多想,原来是基类的析够函数没有声明成虚拟的。
本文通过一个具体的C++编程实例说明了基类析构函数声明为虚函数的重要性。如果忘记这一关键步骤,则可能导致资源泄露等问题。文章还提及了Scott Meyers这位C++领域的权威专家。
604

被折叠的 条评论
为什么被折叠?



