c++ - 构造对象两次

标签 c++ class constructor

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

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

最佳答案

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

如果您想从另一个构造函数内部调用一个构造函数,您可以使用委托(delegate)构造函数

(仅在 C++11 中)

例子:

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

关于c++ - 构造对象两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220079/

相关文章:

c++ - 构建一个 vector 以允许未初始化的存储

jquery - 如何获取最顶层的div父类

c++ - C++中内置类型的自定义构造函数

c++ - 什么时候分配和初始化变量?

c++ - 关于类定义的问题

c++ - 能够访问类定义之外的私有(private)对象成员

C++ 模板函数实现不正确

java - 为什么我们把存储对象属性的变量称为实例变量呢?

c++ - 防止隐式模板实例化

python - 替换实例方法