C++中对封装的语法支持——重载运算符

重载运算符

1、对于自定义类型,编译器不知道运算规则,而重载运算符会将两个对象相加转换为函数调用。

2、运算符重载转换的函数调用,函数名字是固定的规则。

  (1) 如果重载+号运算符,函数名字就是:operator+

  (2) 如果重载-号运算符,函数名字就是:operator-

  (3) 如果重载<号运算符,函数名字就是:operator<

  (4) 如果重载!号运算符,函数名字就是:operator!

3、运算符重载就是在类的内部增加某个运算符函数。

4、对于+号运算符可以返回任何类型的数据(基本数据类型,自定义数据类型)。

5、返回值可以有两个选择:值、引用。

6、返回值要考虑运算符本身的含义是什么(尽量不要违背运算符本身的含义)。

 

代码实现:

声明一个Box类和Desk类:

 

实现Box+Box

 

实现Box+Desk

 

实现Box+int(自己制定规则)

 

实现Box+=Box

 

实现Box+=int类型

 

实现Box==Box(返回值类型为bool

 

实现Box==int类型

 

实现++Box

 

实现Box++

 

运算符重载也可以重载类型转换运算符(规则由自己制定)

实现Box转换为int类型、bool类型、以及Box转换为Desk类型

 

 

posted on 2019-10-27 21:01  YanShnY  阅读(208)  评论(0编辑  收藏  举报

导航