创建类的实例后,我们可以显式调用构造函数吗?例如
class A{
A(int a)
{
}
}
A instance;
instance.A(2);
Run Code Online (Sandbox Code Playgroud)
我们可以这样做吗?
Mic*_*ngs 15
您可以使用新的展示位置:http://en.wikipedia.org/wiki/Placement_new允许
new (&instance) A(2);
Run Code Online (Sandbox Code Playgroud)
但是,从您的示例中,您将在对象上调用两次构造函数,这是非常糟糕的做法.相反,我建议你做
A instance(2);
Run Code Online (Sandbox Code Playgroud)
Placement new通常仅在您需要预分配内存时使用,例如在自定义内存管理器中.
bro*_*eld 10
没有.
为集合创建一个方法并从构造函数中调用它.此方法也将在稍后提供.
class A{
A(int a) { Set(a); }
void Set(int a) { }
}
A instance;
instance.Set(2);
Run Code Online (Sandbox Code Playgroud)
您可能还需要默认值或默认构造函数.