C++基础知识复习--运算符重载(非成员函数重载和成员函数重载)

#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++的运算符重载。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值