我需要延遲構造函數調用,所以我可以初始化應該傳遞給構造函數的值。我寫了一個簡短而簡單的例子。延遲構造函數調用
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