c++运用友元函数实现运算符‘+’重载

#include<iostream>usingnamespacestd;classpoint{private:intx,y;public:point(intxx=1,in... #include <iostream>
using namespace std;
class point{
private:int x,y;
public:
point(int xx=1,int yy=1):x(xx),y(yy){};
friend point operator+(const point &a,const point &b);
void show(){cout<<x<<" "<<y<<endl;}
};
point operator+(const point &a,const point &b){
return point((a.x+b.x),(a.y+b.y))}
void main(){
point g(1,3),h,k;
k=g+h;
k.show();
}
实在是不知道哪里出了问题……请大家帮忙看看~
原题:定义类point,有数据成员x,y,为期定义友元函数实现重载“+”
加了分号也还是有问题的…错误是:INTERNAL COMPILER ERROR 出错显示在类的定义中,friend point operator+(const point &a,const point &b);这行
展开
 我来答
匿名用户
推荐于2016-11-25
展开全部
如果没有估计错,你用的应该余裤是 vc 6.0,这是 vc 6.0 的BUG。
解决办法有三个:
1、下载sp6,地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=A8494EDB-2E89-4676-A16A-5C5477CB9713&displaylang=en
2、不要使用 using namespace std 及类竖此简似的语句。
3、最佳的解决方法是换最扒圆新版的 vc,例如 Visual Studio 2010。

少了分号。

point operator+(const point &a,const point &b){
return point((a.x+b.x),(a.y+b.y))}
改为:
point operator+( const point &a, const point &b )
{
return point( ( a.x + b.x ), ( a.y + b.y ) ); // <-- 注意,这里要有分号。
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式