这句话是否正确声明带参数的构造函数隐藏了默认值 构造函数,您无法调用默认构造函数。
答案 0 :(得分:8)
不完全是。相反,它会抑制编译器提供的默认构造函数的生成。考虑:
class Class1 {
};
Class1
将有一个编译器生成的默认构造函数,因此您可以调用new Class1()
,而
class Class2 {
Class2( int );
}
将没有编译器生成的默认构造函数。因此,除非您明确声明new Class2()
的默认构造函数,否则无法调用Class2
:
class Class2 {
public:
Class2();
Class2( int );
}