私はコンストラクタ呼び出しを遅らせる必要があるので、私は、コンストラクタに渡されるべき値を初期化することができます。私は簡単で非常に簡単な例を書いた。遅延コンストラクタ呼び出し
class A
{
private:
ObjectA* _ptr;
public:
A(ObjectA*);
};
class B
{
private:
A object; // The constructor seems to be called here?
ObjectA* obj;
public:
B();
};
A::A(ObjectA* ptr)
{
this->_ptr = ptr;
}
B::B()
{
obj = new ObjectA();
object(obj); // I want to call the 'A' constructor here, after initializing of 'obj'.
}
可能でしょうか?
それに 'B'のコンストラクタと店舗ポインタに動的に 'A'を作成します。 – Ari0nhh
C++ 17では、['std :: optional'](http://en.cppreference.com/w/cpp/utility/optional)を使用してください。または、デザインを改善するだけです。 – StoryTeller
オブジェクトの作成に使用する値が初期化されるまで、オブジェクトの作成を延期できないのはなぜですか?オブジェクトを作成してから適切に初期化する前に使用するのは賢明ではないようです。 – Peter