形参到种类型的隐式转换有歧义,难道不是最佳匹配!
形参到类类型的隐式转换有歧义,难道不是最佳匹配!!废话不说看代码:C/C++ code#include iostreamusing na
形参到类类型的隐式转换有歧义,难道不是最佳匹配!!
废话不说看代码:
C/C++ code#include <iostream>using namespace std;class CL{ public: int ival; CL():ival(9){ } CL(int i):ival(5){//和下面的构造函数存歧义 } CL(int i,int j=10):ival(8){//和上面的构造函数存歧义 } CL(const CL&cl){ ival=cl.ival; }};int main(){ CL cl1; CL cl2=9;//使用此语句进行构造对象时,含义不明,有歧义!}
上面标注的两个构造函数,进行类似CL cl2=9时,会出现错误,只是一个构造函数存在多的一个默认实参的问题,就会出错,难道不是最佳匹配!!
[解决办法]CL(int i):ival(5){//和下面的构造函数存歧义
}
CL(int i,int j=10):ival(8){//和上面的构造函数存歧义
}
这两个函数匹配一个int类型的形参时,是一样的。
[解决办法]恩,编译器也不知道该用哪个了,试过了就好。