/*类型转换示例 */
#include<iostream>
using namespace std;
class Complex{
public:
Complex(){ } //构造函数
Complex(double r,double i) //构造函数
{ real=r; imag=i;}
Complex(double r)
{ real=r; imag=0;} //转换构造函数
operator double()
{ return real; } //类型转换函数
friend Complex operator+(Complex &co1,Complex &co2); //声明友元运算符重载函数
void print();
private:
double real;
double imag;
};
Complex operator+(Complex &co1,Complex &co2)
{ Complex temp;
temp.real=co1.real+co2.real;
temp.imag=co1.imag+co2.imag;
return temp;
}
void Complex::print( ) //输出复数对象的值
{ cout<<real;
if (imag>0) cout<<"+";
if (imag!=0) cout<<imag<<"i\n";
}
int main( )
{ Complex com1(1.1,1.1),total;
Complex com2(1.1);
Complex com3(3.3,3.3);
double d=100.1;
total= com1+com2; //两个Complex类对象相加
d=d+com3;
total.print(); //输出复数对象的值
cout<<"d="<<d;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
class Complex{
public:
Complex(){ } //构造函数
Complex(double r,double i) //构造函数
{ real=r; imag=i;}
Complex(double r)
{ real=r; imag=0;} //转换构造函数
operator double()
{ return real; } //类型转换函数
friend Complex operator+(Complex &co1,Complex &co2); //声明友元运算符重载函数
void print();
private:
double real;
double imag;
};
Complex operator+(Complex &co1,Complex &co2)
{ Complex temp;
temp.real=co1.real+co2.real;
temp.imag=co1.imag+co2.imag;
return temp;
}
void Complex::print( ) //输出复数对象的值
{ cout<<real;
if (imag>0) cout<<"+";
if (imag!=0) cout<<imag<<"i\n";
}
int main( )
{ Complex com1(1.1,1.1),total;
Complex com2(1.1);
Complex com3(3.3,3.3);
double d=100.1;
total= com1+com2; //两个Complex类对象相加
d=d+com3;
total.print(); //输出复数对象的值
cout<<"d="<<d;
system("pause");
return 0;
}