10
可能重复:
C++ using this pointer in constructors我们可以使用内部构造this指针
之类的标题,我可以做类似下面的代码?
class A;
class B {
public:
B(A* p);
...
};
class A {
B m;
public:
A():m(this){}
~A(){}
};
可能重复:
C++ using this pointer in constructors我们可以使用内部构造this指针
之类的标题,我可以做类似下面的代码?
class A;
class B {
public:
B(A* p);
...
};
class A {
B m;
public:
A():m(this){}
~A(){}
};
是的,您可以将指针传递给当前正在构建的对象。但是你必须记住,这个对象还没有完全构建。所以基本上B可以在它的c'tor中做的是存储指针以备后用。
一个常用的例子是一个std :: stream和一个流缓冲区。
可能重复:将此指针传递给成员的c'tor或将此指针传递给另一个线程是有区别的。在第一种情况下,人们可以很容易地控制第一次访问正在建设中的对象,而第二种情况下,它至少都是简单的。 –