初始化持有自身成员引用的类

[C++]Initialization of class holding member reference to itself

本文关键字:引用 成员 初始化      更新时间:2023-10-16

我对一种习惯用法很感兴趣,或者说是类保存对自身实例的成员引用的技术,就像下面的

class A
{
public:
    A & instance;
public:
    A():instance(*this){}
};

它在启用0x的VC11中工作得很好,尽管我不确定它是否适用于其他编译器,因为this在实例化期间可能不一定会引用相应的"this- willbeing"对象。有人能通过演示这里的所有赋值来指定初始化列表的语义吗?这是标准的吗?

如果你想要一个指向自己的共享指针,你可以使用Boost的enable_shared_from_this。我不知道是否有一个简单的标准方法来完成同样的事情,但它只是一个模板,所以你可以想象没有Boost做同样的事情。