友元函数的重载问题

ewfc12ewrew 2011-07-16 11:32:05
#include<iostream>
using namespace std;

class complex
{
private:
double real;
double image;
public:
complex(double r=0,double i=0):real(r),image(i)
{}
friend complex operator+(complex &c1,complex &c2);

void display()
{
cout<<"("<<real<<","<<image<<")"<<endl;
}
};
complex operator+(complex &c1,complex &c2)
{

complex A(c1.real+c2.real,c2.image+c2.image);
return A;
}

int
main()
{
complex c1(2.4,3.1),c2(4.4,5.6),c3;
c3=c1+c2;
c3.display();
return 0;
}
//程序编译老出现documents and settings\administrator\桌面\a109.cpp(12) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
不知我的程序哪里错了???
...全文
59 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-07-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ewfc12ewrew 的回复:]

引用 1 楼 liuying_1001 的回复:
头文件的 #include<iostream> 改成 #include<iostream.h>

然后删除语句 using namespace std;


这样是能通过,但为什么会这样啊?
[/Quote]
这是典型的VC6的结果...
pathuang68 2011-07-17
  • 打赏
  • 举报
回复
楼主的代码一点问题也没有,是你的编译器问题。

估计你用的是VC6吧?换VS2003或以后的版本。
hdxu8511 2011-07-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ewfc12ewrew 的回复:]
引用 1 楼 liuying_1001 的回复:
头文件的 #include<iostream> 改成 #include<iostream.h>

然后删除语句 using namespace std;


这样是能通过,但为什么会这样啊?
[/Quote]

LZ可以看看这个链接: http://baike.baidu.com/view/159924.htm
ewfc12ewrew 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuying_1001 的回复:]
头文件的 #include<iostream> 改成 #include<iostream.h>

然后删除语句 using namespace std;
[/Quote]

这样是能通过,但为什么会这样啊?
liuying_1001 2011-07-16
  • 打赏
  • 举报
回复
http://archive.cnblogs.com/a/1778637/
liuying_1001 2011-07-16
  • 打赏
  • 举报
回复
头文件的 #include<iostream> 改成 #include<iostream.h>

然后删除语句 using namespace std;

65,187

社区成员

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

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