DIYIT

面朝大海,春暖花开 (手目贝卜口一小囗口贝卜口,言亥扌三人一大!:))

IT博客 首页 新随笔 联系 聚合 管理
  30 Posts :: 2 Stories :: 64 Comments :: 0 Trackbacks
众所周知,在实现多态的过程中,一般将基类的析构函数设为virtual,以便在delete的时候能够多态的链式调用。那么析构函数是否可以设为纯虚呢?
class CBase
{
public:
    CBase()
    {
        printf("CBase()\n");
    }
    virtual ~CBase() = 0;
};
答案是可以,那么这样实现的目的是什么呢?当然是避免实例化。
但因为派生类不可能来实现基类的析构函数,所以基类析构函数虽然可以标为纯虚,但是仍必须实现析构函数,否则派生类无法继承,也无法编译通过。

cooelaf 2006-05-03 21:19

文章来源:http://www.cppblog.com/cooleaf/archive/2006/05/03/6598.html
posted on 2006-05-07 22:44 percy:) 阅读(544) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。