现在的位置: 首页 > 综合 > 正文

关于 VC6.0 运算符重载的一点 Bug

2013年10月15日 ⁄ 综合 ⁄ 共 728字 ⁄ 字号 评论关闭
今天写了一个简单的运算符重载的例子,结果总是提示错误,后经查阅资料,发现原来是 VC6.0 的一个Bug 作怪,现将代码描述如下:

#ifndef _POINT_H_
#define _POINT_H_
#include 
<iostream>
using namespace std;


class Point
{
public:
    Point(
double,double);
    friend Point 
operator+(Point &, Point &);
    
void Output();
protected:
    
double m_x;
    
double m_y;
}
;
#endif

经编译,提示“fatal error C1001: INTERNAL COMPILER ERROR".

一种解决方案是:
    将      

#include <iostream>
using namespace std;

替换为

 #include<iostream.h>  

另外一种方案就是:
在开头的地方加上类和重载运算函数的声明。 即

#ifndef _POINT_H_
#define _POINT_H_
#include 
<iostream>
using namespace std;

class Point;
Point 
operator+(Point &, Point &);


class Point
{
public:
    Point(
double,double);
    friend Point 
operator+(Point &, Point &);
    
void Output();
protected:
    
double m_x;
    
double m_y;
}
;
#endif

 

抱歉!评论已关闭.