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; }