初始化持有自身成员引用的类
[C++]Initialization of class holding member reference to itself
我对一种习惯用法很感兴趣,或者说是类保存对自身实例的成员引用的技术,就像下面的
class A
{
public:
A & instance;
public:
A():instance(*this){}
};
它在启用0x的VC11中工作得很好,尽管我不确定它是否适用于其他编译器,因为this
在实例化期间可能不一定会引用相应的"this- willbeing"对象。有人能通过演示这里的所有赋值来指定初始化列表的语义吗?这是标准的吗?
如果你想要一个指向自己的共享指针,你可以使用Boost的enable_shared_from_this。我不知道是否有一个简单的标准方法来完成同样的事情,但它只是一个模板,所以你可以想象没有Boost做同样的事情。
相关文章:
- 具有引用成员的结构是否具有唯一的对象表示形式
- 初始化右值引用成员
- C++通过绑定到引用成员而缩短临时变量寿命?
- C++为具有引用成员变量的类创建复制构造函数
- 常量和引用成员函数限定符
- C++将引用成员绑定到构造函数参数
- 如果包含引用成员的类中缺少原始变量,为什么它仍然可以访问?
- 初始化指针或引用成员变量以指向另一个成员
- 将常量引用成员设置为临时变量是否安全
- 对象超出范围后,引用成员设置为 0
- 复制构造函数初始化初始化列表中的引用成员会导致指针悬空
- 使用默认构造函数引用成员变量初始化错误
- 如何从派生类访问引用成员变量?
- Visual Studio 2017 允许在构造函数中使用自身初始化引用成员.真的是合法的C++吗?
- 为什么当类具有引用成员时C++编译器不删除复制构造函数
- 引用成员到构造函数参数按值传递
- 在执行不平凡的构造函数之前引用成员
- 具有引用成员变量的多态性
- 从按值构造函数参数初始化的引用成员
- 深度复制包含引用成员(C++)的结构