2012-08-22 4 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に渡すか、このポインタを別のスレッドに渡すかに違いがあります。最初のケースでは、建設中のオブジェクトが最初にアクセスされたときは簡単に制御でき、2番目の場合は少なくともすべて単純です。 –

答えて

10

はい、現在建設中のオブジェクトにポインタを渡すことができます。しかし、オブジェクトはまだ完全に構築されていないことを覚えておく必要があります。だから、基本的にBがそれでできることは、後で使うためのポインタを格納することです。

これがよく使用される例は、std :: streamとストリームバッファです。

関連する問題