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或將此指針傳遞給另一個線程是有區別的。在第一種情況下,人們可以很容易地控制第一次訪問正在建設中的對象,而第二種情況下,它至少都是簡單的。 –