WEB开发网
开发学院软件开发C++ 构造函数中的this指针 阅读

构造函数中的this指针

 2010-10-15 09:07:53 来源:Web开发网   
核心提示:需要明了的是,【构造/析构/普通】和【虚/非虚】是完全独立的分类方式:●只要是“构造/析构”就“串联(chaining)”●只要是“虚函数”就“可能obj.vfun()”它们可以“一起生效”但&ldq

需要明了的是,【构造/析构/普通】和【虚/非虚】是完全独立的分类方式:

●只要是“构造/析构”就“串联(chaining)”

●只要是“虚函数”就“可能obj.vfun()”

它们可以“一起生效”但“不互相干扰”,比如虚析构函数的情况,看下面的例子:

class superclass
{
    virtual ~superclass() { println("superclass::~superclass()") };
};
class subclass : public superclass
{
    virtual ~subclass() { println("subclass::~subclass()") };
};
执行superclass * super = new subclass();
delete super;
的结果是打印出subclass::~subclass()
superclass::~superclass()

这意味着当执行delete super;时:

●是否是chaining式call呢?是。因为是析构函数。

●那chaining call从哪里开始呢?从subclass::~subclass() ==〉superclass::~superclass(),

因为superclass * super的实际对象的类型是subclass。

上一页  1 2 3 

Tags:构造 函数 this

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接