我需要延迟构造函数调用,所以我可以初始化应该传递给构造函数的值。我写了一个简短而简单的例子。延迟构造函数调用
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