C++ 运算符重载简单介绍

我们之前了解过函数的重载(详见C++函数(二))。它使得同名的函数可以接受不同的参数,实现不同的功能。而运算符重载和函数的重载很相似。也就是说,同样是运算符“+”,在不同的地方使用具有不同的功能。

还是举个例子来说:

(1) 如果操作数是两个数

int a = 1, b = 2;
cout << a+b << endl;

此时“+”的作用是将两个数相加起来。

(2) 如果操作数是两个字符串

string a = "I like ";
string b = "C++! ";
cout << a+b << endl;

此时“+”的作用是将两个字符串拼接起来。

如我们在上面看到的,“+”在不同的场景下实现了不同的功能,这就是运算符重载。

其实,使用一个运算符就是调用一个函数。比如“+”就相当于函数“operator+()”看下面的代码

#include <iostream>

using namespace std;

int main()
{
    string a = "I like ", b = "C++! ";
    cout << a + b << endl;
    cout << "----------------" << endl;
    cout << operator+(a, b) << endl;
    return 0;
}

运行结果:

 可以看到,a+b与operator+(a, b)运行的结果是一样的。

因为“+”相比“operator+()”使用简单很多,所以我们平时只使用运算符“+”。

像“operator+()”这样的函数,我们叫做运算符函数。

那么运算符重载就好理解了,它本质上就是函数的重载。

原文地址:https://www.cnblogs.com/bwjblogs/p/12976384.html