A b(3) 行会产生歧义,因为它可以调用两个可能的构造函数中的任何一个。单参数参数化构造函数或具有默认参数的双参数参数化构造函数。我该如何解决这个问题?
#include<iostream>
using namespace std;
class A
{
public:
int a,b;
A()
{
a=5;
b=6;
}
A(int a1)
{
a=a1;
b=54;
}
A(int a1,int b2=8)
{
a=a1;
b=b2;
}
void show()
{
cout<<"a="<<a<<" b="<<b<<endl;
}
};
int main()
{
A a(3); // I want A(int a1,int b2=8) to get executed
A b(3); // I want A(int a1) to get executed
a.show();
b.show();
return 0;
}