C++程序查个错

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:18:26
#include<iostream>
using namespace std;
class Point
{ public:
Point(){xzhou=0;yzhou=0;zzhou=0;}
Point(double x, double y,double z){xzhou=x;yzhou=y;zzhou=z;}

friend Point operator + (Point &c1,Point &c2);

void display( );

private:
double xzhou;
double yzhou;
double zzhou;
};

Point operator + (Point &c1,Point &c2)
{ return Point(c1.xzhou+c2.xzhou,c1.yzhou+c2.yzhou,c1.zzhou+c2.zzhou); }

void Point::display()
{
cout<<xzhou<<","<<yzhou<<","<<zzhou<<endl;
}

void main()
{
Point c1(1,2,3),c2(1,2,3),c3;
c3=c1+c2;
c3.display();
}
错误是:INTERNAL COMPILER ERROR

你的vc++6.0编译系统的问题,你用的是较早发布的vc++6.0的编译系统
编译会出现错误是这样的嘛:
fatal error C1001: INTERNAL COMPILER ERROR
原因是微软vc++6.0中存在bug,不能在声明重载运算符之前写“using namespace std;”
需要去微软网站上下载一个:
Microsoft Visual Studio 6.0 Service Pack 5 安装就可以了!!

没什么错误啊
输出结果2,4,6

如果你用的DEV C++的话
把void main()改成 int main()

我的编译器没有查出你的程序有任何语法错误。我没有任何修改,我在在VC里运行的结果是2,4,6。

如果你那里有错误,估计是编译器的问题。

#include<iostream>
using namespace std;
class Point
{
public:
Point(){xzhou=0;yzhou=0;zzhou=0;}
Point(double x, double y,double z){xzhou=x;yzhou=y;zzhou=z;}

Point operator+(Point &c1);

void display( );

private:
double xzhou;
double yzhou;
double zzhou;
};

Point Point:: operator+(Point &c1)
{
return Point(c1.xzhou+xzhou,c1.yzhou+yzhou,c1.zzhou+zzhou);
}

void Point::display()
{
cout<<xzhou<<",