c++的运算符重载

作者: 潇洒风 | 来源:发表于2017-08-14 13:25 被阅读40次
image.png

C++中的加号重载:
例:实现复数的相加

#include<iostream>  
using namespace std;  
  
class Complex{  
    public:  
        Complex(double r=0.0,double i=0.0):real(r),imag(i){}  
        Complex operator+(const Complex &c2)const;  
        void display()const{  
            cout<<"("<<real<<","<<imag<<')'<<endl;  
        }  
    private:  
        double real,imag;  
};  
Complex Complex::operator+(const Complex &c2)const{  
    return Complex(real+c2.real,imag-c2.imag);  
}  
  
int main(){  
    Complex c1(5,4),c2(2,10),c3;  
    c3=c1+c2;  
    c3.display();  
    return 0;  
}  
image.png

C++中的前置++重载:
例:点的移动

#include<iostream>  
using namespace std;  
  
class Point{  
    public:  
        Point(float a,float b):x(a),y(b){}  
        Point& operator++();  
        ~Point(){}  
        void dispaly()const{  
            cout<<"("<<x<<","<<y<<")"<<endl;  
        }  
    private:  
        float x,y;  
};  
Point& Point::operator++(){  
    x++;y++;  
    return *this;  
}  
  
int main(){  
    Point p(1,2);  
    (++p).dispaly();  
    p.dispaly();   
    return 0;  
}  
image.png

C++中的后置++重载:
例:点的移动

#include<iostream>  
using namespace std;  
  
class Point{  
    public:  
        Point(float a,float b):x(a),y(b){}  
        Point operator++(int);  
        ~Point(){}  
        void dispaly()const{  
            cout<<"("<<x<<","<<y<<")"<<endl;  
        }  
    private:  
        float x,y;  
};  
Point Point::operator++(int){  
    Point p=*this;  
    x++;y++;  
    return p;  
}  
  
int main(){  
    Point p(1,2);  
    (p++).dispaly();  
    p.dispaly();  
    return 0;  
}  

相关文章

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。...

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • C++运算符重载

    C++运算符重载的实质:运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够...

  • C++ 运算符重载

    运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。实际上,很多C++运算符已经重载。将*运算符用...

  • C++运算符重载-下篇 (Boolan)

    C++运算符重载-下篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符重载-上篇 (Boolan)

    C++运算符重载-上篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++重载

    重载 C++语言规定: 重载的运算符要保持原运算符的意义。只能对已有的运算符重载,不能增加新的运算符。重载的运算符...

  • C++运算符重载详解

    运算符重载规则 1.被重载的运算符必须是已经存在的C++运算符,不能重载自己创建的运算符; 2.运算符被重载之后,...

  • C++ 重载运算符

    C++重载运算符

  • 1.2.17_C++ ++ 和 -- 运算符重载

    C++ 重载运算符和重载函数 递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符...

网友评论

    本文标题:c++的运算符重载

    本文链接:https://www.haomeiwen.com/subject/rllurxtx.html