#include<iostream>
using namespace std;
class Complex {
private:
float Vector_x;
float Vector_y;
public:
Complex(float x = 0, float y = 0) {
Vector_x = x;
}
float getVector_x()
{
return Vector_x;
}
float getVector_y()
{
return Vector_y;
}
//友元函数以访问类的私有成员
Complex operator +(Complex);
friend istream & operator >>(istream &in, Complex &A);
friend ostream & operator <<(ostream &out, Complex &A);
friend Complex operator -(Complex C1, Complex C2);
void DisplaySum()
{
if (Vector_y > 0)
cout <<"两个向量的矢量和为: ("<<Vector_x << ',' << Vector_y << ")" << endl;
else if (Vector_y < 0)
cout << "两个向量的矢量和为: ("<<Vector_x <<','<< Vector_y << ")" << endl;
else
cout << Vector_x << endl;
}
};
//重载输入运算符
istream & operator >>(istream &in, Complex &A)
{
in>>A.Vector_x>>A.Vector_y;
return in;
}
//重载输出运算符
ostream & operator <<(ostream &out, Complex &A)
{
out << A.Vector_x <<", "<< A.Vector_y;
return out;
}
//非成员函数重载
Complex operator -(Complex C1, Complex C2) {
Complex Temp;
Temp.Vector_x= C1.getVector_x()- C2.getVector_x();
Temp.Vector_y = C1.getVector_y() - C2.getVector_y();
return Temp;
}
//成员函数重载
Complex Complex::operator +(Complex Plus)
{
Complex temp;
temp.Vector_x = this->Vector_x + Plus.Vector_x;
temp.Vector_y = this->Vector_y + Plus.Vector_y;
return temp;
}
int main()
{
Complex C1;
Complex C2;
Complex Sum;
cout << "请输入第一个向量C1: ";
cin >> C1;
cout << "请输入第二个向量C2: ";
cin >> C2;
Sum = C1 + C2;
cout << "两向量的和 C1+C2(" << Sum<<")"<<endl;
Sum = C1 - C2;
cout << "两向量的差 C1-C2(" << Sum << ")"<<endl;
return 0;
}
以上为C++的运算符重载。
C++基础知识复习--运算符重载(非成员函数重载和成员函数重载)
最新推荐文章于 2023-08-30 19:30:00 发布