永发信息网

Ca(int n=10)和Ca(int n)两者什么区别?

答案:2  悬赏:0  手机版
解决时间 2021-02-21 04:49
#include
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)就编译成功了
最佳答案
Ca(int n)调用的时候,必须带参数。
Ca(int n=10)调用的时候,可以不带参数,例如Ca(7);,不带参数的时候,n=10。
你这里,Ca(int n=10)允许不使用参数,不使用参数的时候就和Ca(int n)重复了。去掉Ca(int n)就可以了。
全部回答
void f(ca b,int n) //注意,这里的参数b是传值,不是指针或引用 { for(int i=0;i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯