默认和参数化构造函数

时间:2010-05-31 05:56:33

标签: c++

这句话是否正确声明带参数的构造函数隐藏了默认值 构造函数,您无法调用默认构造函数

1 个答案:

答案 0 :(得分:8)

不完全是。相反,它会抑制编译器提供的默认构造函数的生成。考虑:

class Class1 {
};

Class1将有一个编译器生成的默认构造函数,因此您可以调用new Class1(),而

class Class2 {
    Class2( int );
}

将没有编译器生成的默认构造函数。因此,除非您明确声明new Class2()的默认构造函数,否则无法调用Class2

class Class2 {
public:
    Class2();
    Class2( int );
}