您的位置:首页 > 编程语言 > C语言/C++

C++ 单目运算 and 双目运算符重载complex

2016-03-30 13:39 274 查看
1 单目运算

#include<iostream>
using namespace std;
//复数
class Complex{
public:
double real,image;
Complex()=default;
Complex(double r, double i)
:real(r),image(i){}
~Complex(){}
Complex operator++(int i)
{
Complex tmp;
tmp.real = this->real++;
tmp.image = this->image++;
return tmp;
}
Complex operator++()
{
this->real++;
this->image++;
return *this;
}
};

int main()
{
Complex c1(10,20);
Complex c2;
//  c2 = c1++;
c2 = ++c1;
cout<<c1.real<<endl;
cout<<c1.image<<endl;
cout<<c2.real<<endl;
cout<<c2.image<<endl;
return 0;
}


2 双目运算符重载complex.cpp

#include<iostream>
using namespace std;
//复数
class Complex{
public:
double real,image;
Complex()=default;
Complex(double r, double i)
:real(r),image(i){}
~Complex(){}
Complex add(Complex c)
{
Complex tmp;
tmp.real = this->real+ c.real;
tmp.image= this->image+c.image;
return tmp;
}
Complex operator+(Complex c)
{
Complex tmp;
tmp.real = this->real+ c.real;
tmp.image= this->image+c.image;
return tmp;
}
friend Complex operator-(Complex c1,Complex c2);
};
Complex operator-(Complex c1,Complex c2)
{
Complex tmp;
tmp.real = c1.real - c2.real;
tmp.image= c1.image-c2.image;
return tmp;
}

int main()
{
Complex c1(10,20);
Complex c2(10,20);
Complex c3 ;
c3 = c1+c2;
//  c3 = c1.add(c2);
cout<<c3.real<<endl;
cout<<c3.image<<endl;

c1 = c3 - c3;
cout<<c1.real<<endl;
cout<<c1.image<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: