2012-08-22 32 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和一個流緩衝區。