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

    xiaoxiao2021-03-25  86

    #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++的运算符重载。
    转载请注明原文地址: https://ju.6miu.com/read-11450.html

    最新回复(0)