fatal error C1001: INTERNAL COMPILER ERROR

南气子水 2012-02-17 09:39:30
重装VC,依然这样报错。
#include <iostream>
using namespace std;

class Complex
{
private:
double m_dReal;
double m_dImage;
public:
Complex(double real=0,double image=0)
{
this->m_dReal = real;
this->m_dImage =image;
}
friend Complex operator+(Complex com1,Complex com2);//友元函数重载双目运算符+
void ShowSum();
};

Complex operator+(Complex com1,Complex com2)//友元函数重载双目运算符+
{
return Complex(com1.m_dReal+com2.m_dReal,com1.m_dImage+com2.m_dImage);//注意这里的返回方式
}
void Complex::ShowSum()
{
cout<<m_dReal;
if(m_dImage>0)
{
cout<<"+";
}
if(m_dImage!=0)
{
cout<<m_dImage<<"i"<<endl;
}
}
int main()
{
Complex com1(10,10),com2(20,-20),sum;
sum = operator+(com1,com2);
//sum = com1 + com2;//或sum=operator+(com1,com2)

sum.ShowSum();
//cout<<"sum的实数部分为"<<sum.m_dReal<<endl;
//cout<<"sum的虚数部分为"<<sum.m_dImage<<endl;

return 0;
}
...全文
56 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
quwei197874 2012-02-17
  • 打赏
  • 举报
回复
const Complex operator+(const Complex& com1,const Complex& com2)//友元函数重载双目运算符+
{
Complex ret(com1);
ret += rhs;
return ret;
}
再定义+=
COmplex operator+=(const Complex& other)
{
m_dRea += other.m_dRea;
...
return*this;
}

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧