2012-08-22 79 views
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(){} 
}; 
+0

可能重复:将此指针传递给成员的c'tor或将此指针传递给另一个线程是有区别的。在第一种情况下,人们可以很容易地控制第一次访问正在建设中的对象,而第二种情况下,它至少都是简单的。 –

回答

10

是的,您可以将指针传递给当前正在构建的对象。但是你必须记住,这个对象还没有完全构建。所以基本上B可以在它的c'tor中做的是存储指针以备后用。

一个常用的例子是一个std :: stream和一个流缓冲区。