using namespace std;
class Ca
{
private:
int m;
public:
Ca(){}
Ca(int n=10)
{
m=n;
}
};
void main()
{
Ca f;
}
编译这段程序,报错如下:
1>------ 已启动生成: 项目: 练习, 配置: Debug Win32 ------
1> example.cpp
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\练习\练习\example.cpp(13): warning C4520: “Ca”: 指定了多个默认构造函数
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\练习\练习\example.cpp(16): error C2668: “Ca::Ca”: 对重载函数的调用不明确
1> c:\documents and settings\administrator\my documents\visual studio 2010\projects\练习\练习\example.cpp(9): 可能是“Ca::Ca(int)”
1> c:\documents and settings\administrator\my documents\visual studio 2010\projects\练习\练习\example.cpp(8): 或 “Ca::Ca(void)”
1> 尝试匹配参数列表“(void)”时
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
要是把Ca(int n=10)改为Ca(int n)就编译成功了