//定义一个复数类Complex,重载运算符"+" ,使之能够用于复数的加法运算。
//参与运算的两个操作数可以都是类对象,也可以其中有一个是整数,顺序任意。
//例如,c1+c2、c1+i、i+c1均合法(设i是整数,c1, c2为复数)。
//编写程序,分别求两个复数之和、整数和复数之和;
//重载流插入运算符和流提取运算符使它们能够输入输出复数对象。
#include <iostream>
using namespace std;
class Complex{
public:
Complex(){
real=0;
imag=0;}
Complex(double a,double i){ //等会试试另一种
real=a;
imag=i;}
Complex(double a){ //转换构造函数
real=a;
imag=0;}
operator double(){ //类型转换运算符函数
return real;}
friend istream & operator >>(istream &,Complex);
friend ostream & operator <<(ostream &,Complex);
friend Complex operator+(Complex &,Complex &); //运算符重载函数
private:
double real;
double imag;
};
ostream & operator <<(ostream &out,Complex &c){
if(c.imag<0)
cout<<c.real<<c.imag<<"i"<<endl;
else
cout<<c.real<<"+"<<c.imag<<"i"<<endl;
}
istream & operator >>(istream &in,Complex &c){
cin>>c.real>>c.imag;
}
Complex operator+(Complex &c1,Complex &c2){
return Complex (c1.real+c2.real,c1.imag+c2.imag);
}
int main(){
Complex c1(3,4),c2;
double d;
return 0;
}
main还没写完。。通不过编译咋办????????
还是不行。。
追答我前面问题回答中说了,你不能用vc6, 如果是vc6定义友元函数,且要访问私有变量,必须将友元函数的定义写到类定义中,如:
#include <iostream>还是那个错误。。
追答你是复制粘贴的我的代码吗?我在vc6上测试过的啊!!
追问...是复制粘贴的。。
我后面加了
int main(){
return 0;
}
不过不加还是那个错误。。。。。。。哭
你把你的完整代码粘出来,尤其是第59行那里,你加了那几行main(){} 怎么会有59行代码?
追问私信吧。。字数超过了。。
追答不客气,一同学习了
本回答被提问者和网友采纳