问题1:去掉单型参的构造函数,可以定义两个+重载,但是必须是友员重载,因为如果是类成员函数的话,需要由对象调用,doubel在前不行。
两个友员重载不会抱错:
friend Complex operator+(const Complex&,const double);
friend Complex operator+(const double d,const Complex &s){return s+d;};
问题2:我试了才会贴上来告诉你,不是我乱掰的,想要的话,我可以给你截图看运行结果。
我认真看了你的问题,不过你确实没怎么描述清楚。
ps:在vc6中友员重载存在一个问题,是编译器问题,不支持标准,在前面的帖子讨论过:
http://bbs.bc-cn.net/viewthread.php?tid=133743&extra=&page=10#112525
还有,看了你的错误信息,似乎不是程序本身的问题吧,应该是编译器哪里冲突,等等,vc++毛病多多!
[此贴子已经被作者于2007-5-3 21:31:58编辑过]
Fight to win or die...