C++运算符重载的一个问题,运算符重载函数和拷贝函数不能同时存在,编辑器报错 30

#include<iostream>#include<cmath>#include<iomanip>#include<cstring>#include<string>us... #include<iostream>
#include<cmath>
#include<iomanip>
#include<cstring>
#include<string>
using namespace std;
class com
{
public:
com(int xx=0) {x=xx;}
com(com &); //拷贝构造函数
com operator + (com a);//运算符重载函数
int get() {return x;}
private:
int x;
};
com::com(com &p)
{
x=p.x;
}
com com:: operator +(com a)
{
return com(get()+a.get());//运行后这行报错no matching function call to‘com::com(com)’
}
int main()
{
com b(12),c(5);
com a;
a=(b+c);
cout <<a.get()<<endl;
}

把拷贝构造函数去除,程序就运行无误
展开
 我来答
顽石dvd
2014-06-29 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:13.5万
展开全部

我帮你运行过,没问题,你试试重新新建项目,然后复制粘贴调试

追问

不管用....

追答
可能是编译器不同造成的差异吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
33...2@qq.com
2014-06-29 · 贡献了超过107个回答
知道答主
回答量:107
采纳率:0%
帮助的人:40.3万
展开全部
嗯哪我帮你修改,私聊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
never715
2014-06-29 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:469万
展开全部
貌似::后面多了一个空格!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式