重载_,“+, -, --, ++”运算符

来源:互联网 发布:中宏产业数据库 编辑:程序博客网 时间:2024/05/17 03:16
#include<iostream>using namespace std;//以+和++为例,-和--同理class Complex{private:    int fro;    int fai;public:    Complex (){};    Complex(int a,int b):fro(a),fai(b){ };    Complex operator+ (const Complex& x) const {return Complex(fro+x.fro,fai+x.fai);};    Complex & operator++ ();    Complex operator++ (int);    void display(){cout<<fro<<" "<<fai<<endl;};};// 前置++,“加完再用”,所以返回的是引用Complex& Complex::  operator++ () {    fro++;    fai++;    return *this;}// 后置++,“用完再加”,所以返回类。// 事实上,不是“用完在加”,而是自加运算后时候原来的值,从下面代码可看出。Complex Complex:: operator++ (int){    Complex old; // 保存原来的对象    old=*this;    ++(*this);  // 这里可以用一般方法替换。而如果不是一般情况的自加运算,那么最好调用重置后的++运算符,这样做的原因是可以减少重复的代码。    return old;}// test_mainint main(){    Complex c1(1,2);    Complex c2(2,3);    Complex c=c1+c2;    c.display();    c++;    c.display();    return 0;}
0 0
原创粉丝点击