读书人

形参到种类型的隐式转换有歧义难道不

发布时间: 2012-09-02 21:00:34 作者: rapoo

形参到类类型的隐式转换有歧义,难道不是最佳匹配!!
废话不说看代码:

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类型的形参时,是一样的。
[解决办法]
恩,编译器也不知道该用哪个了,试过了就好。

读书人网 >C++

热点推荐