学习C++类对象 运算重载符
用来记录我学习的过程。。
#include <iostream>
using namespace std;
class complex
{
private:
double real, imag;
public:
complex ( double i = 0.0, double j =0.0)
{
real = i;
imag = j;
}
complex operator + ( complex &);
complex operator - ( complex & );
complex operator * ( complex & );
complex operator / ( complex & );
complex operator - ();
complex operator ++ ();
complex operator ++ (int);
void print()
{
cout<<real<<" "<<imag<<endl;
}
};
complex complex::operator +(complex & cc) //complex 在最前面 是 返回值类型 跟 int main 的 int 一个意思
{
cout<<"A"<<" +"<<"B" <<"= ";
return complex ( real + cc.real , imag + cc.imag );
}
complex complex::operator -( complex & cc ) //减 - 的实现
{
cout<<"相减"<<"A"<<" -"<<"B" <<"= ";
return complex ( real - cc.real ,imag - cc.imag );
}
complex complex::operator * (complex &cc ) //乘 * 的实现
{
cout<<"相乘"<<"A"<<" *"<<"B" <<"= ";
return complex ( real * cc.real , imag * cc.imag );
}
complex complex::operator - ( ) //取反 - 实现
{
cout<<"取反";
return complex ( - real, - imag );
}
complex complex::operator ++ () //前置 ++
{
cout<<"前置自增 ++";
real += 1;
imag += 1;
return ( *this );
}
complex complex::operator ++ ( int )
{
cout<<"后置++";
complex ctemp = (*this); //定义类对象 ctemp 用来存放 自增前对象
++(*this); //自增
return ctemp; //返回 自增前的对象
}
int main ()
{
complex A ( 1.2 , 3.4 ), B ( 7.7, 8.8), C;
A.print (); B.print ();
C = A + B;
A.print ();
B.print ();
C.print ();
C = A - B;
C.print ();
C = A * B;
C.print ();
C = -A;
C.print ();
C = A++;
C.print ();
C = ++A;
C.print ();
return 0;
}