C++ 构造函数默认参数

C++ 构造函数默认参数,c++,constructor,compiler-errors,default-parameters,C++,Constructor,Compiler Errors,Default Parameters,构造函数: A() { std::cout<<"In A const"; } A(int a = 3) { std::cout<<"In a with default :"<<a; } A a; A a1(4); 上面的代码显示错误:对重载“A()”的调用不明确您已为第二个构造函数指定了默认值: A(int a = 3) 因此,这涵盖了以下两种情况: A()和A(3),使得第一个定义变得多余如果没有传递参数,编译器无法决定调用哪个构造函

构造函数:

A()
{
    std::cout<<"In A const";
}

A(int a = 3)
{
    std::cout<<"In a with default :"<<a;
}
A a;
A a1(4);

上面的代码显示错误:对重载“A()”的调用不明确

您已为第二个构造函数指定了默认值:

A(int a = 3)
因此,这涵盖了以下两种情况:
A()
A(3)
,使得第一个定义变得多余

如果没有传递参数,编译器无法决定调用哪个构造函数。