美文网首页互联网科技程序员Linux
小朋友学C++(44):运算符重载

小朋友学C++(44):运算符重载

作者: 海天一树X | 来源:发表于2019-01-09 23:34 被阅读3次

咱们定义一个结构体Point,用来表示平面上的点:

struct Point
{
    int x;
    int y;
};

咱们经常用到的运算符“+”、“-”、“*”、“/”,只能用于int, float, double, char类型的变量之间。两个Point的变量,并不能使用这些运算符来进行运算。
在C++中,咱们可以通过重载运算符(operator)的方法,来实现一些复杂数据类型变量的运算。

例1

#include <iostream>
using namespace std;

struct Point
{
    int x;
    int y;

    Point operator+ (Point &b)
    {
        Point p;
        p.x = (this->x + b.x) / 2;
        p.y = (this->y + b.y) / 2;
        return p;
    }
};


int main()
{
    Point p1, p2, p3;
    p1.x = 10;
    p1.y = 15;
    p2.x = 90;
    p2.y = 25;
    p3 = p1 + p2;
    cout << p3.x << ',' << p3.y << endl;

    return 0;
}

运行结果:

50,20

分析:
这里通过重载运算符“+”,实现了两个Point变量之间的加法运算。学过初中平面几何的人应该看得出来,这里两个Point变量相加得到的结果是这两点之间的中点。

在C++中,有些运算符可以重载,有些运算符不可以重载。
(1)下面是可重载的运算符列表:

双目算术运算符:+ (加),-(减),*(乘),/(除),% (取模)
关系运算符: ==(等于),!= (不等于),< (小于),> (大于>,<=(小于等于),>=(大于等于)
逻辑运算符:||(逻辑或),&&(逻辑与),!(逻辑非)
单目运算符:+ (正),-(负),*(指针),&(取地址)
自增自减运算符:++(自增),--(自减)
位运算符:   | (按位或),& (按位与),~(按位取反),^(按位异或),,<< (左移),>>(右移)
赋值运算符:  =, +=, -=, *=, /= , % = , &=, |=, ^=, <<=, >>=
空间申请与释放:    new, delete, new[ ] , delete[]
其他运算符:  ()(函数调用),->(成员访问),,(逗号),[](下标)

(2)下面是不可重载的运算符列表:

.:成员访问运算符
.*, ->*:成员指针访问运算符
:::域运算符
sizeof:长度运算符
?::条件运算符
#: 预处理符号

少儿编程答疑、算法答疑请加微信307591841或QQ307591841


公众号.jpg

相关文章

  • 小朋友学C++(44):运算符重载

    咱们定义一个结构体Point,用来表示平面上的点: 咱们经常用到的运算符“+”、“-”、“*”、“/”,只能用于i...

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的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++重载

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

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

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

网友评论

    本文标题:小朋友学C++(44):运算符重载

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