运算符重载
- 在C++中有很多会被自动调用的代码
- 构造一个对象, 构造函数被调用了
- 当一个对象被销毁的时候, 析构函数被调用
- 当编译器需要进行隐式转换时, 转换构造被调用了.
- 当一个对象被使用了运算符(+,-,*,/,%....)的时候
- 无论是在C还是在c++中, 能够直接使用运算符进行运算的数据类型一般只有基本数据类型.
- 意思就是, 无法直接将一个数组使用
+
,-
,*
等运算符, 结构体变量, 类对象同样如此. - 如果想要将非基本数据类型的变量使用运算符,一般需要通过另一些运算符来得到基本数据类型,然后再直接使用运算符.
- 例如一个结构体变量,不能直接使用 +运算符, 但是通过
.
或->
可以从结构体变量中得到一个字段(基本数据类型), 这个基本数据类型就能使用运算符了
- 例如一个结构体变量,不能直接使用 +运算符, 但是通过
- 在C++中. 提供一种特殊的成员函数. 这些成员函数的名字都有一个相同的前缀,都叫
operator
, 他们一般都有一个不同的后缀, 不同的后缀就是运算符. 例如:operator+
,operator-
, 这些函数在使用的时候, 一般有两种形式:对象.operator+(5);
对象 + 5
-
string strobj2; strobj2.operator+=("123"); strobj2 += "123";
- 意思就是, 无法直接将一个数组使用