构造对象两次

时间:2014-01-19 17:26:25

标签: c++ class constructor

class foo
{
  public:
    foo();
    foo(int param){foo::foo();}
};

foo::foo(int)会调用foo::foo()作为方法并初始化对象的成员或创建无名对象吗?可以从另一个构造函数/成员函数中调用一个构造函数作为方法吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,构造函数将创建类foo的无名对象,然后它将被销毁。

如果你想从另一个构造函数中调用构造函数,你可以使用委托构造函数

来完成它(仅在C ++ 11中)

示例:

class foo
{
  public:
    foo();
    foo(int param) : foo() {}
};