关于C++思考(三)

来源:互联网 发布:最新网络歌手排行榜 编辑:程序博客网 时间:2024/04/29 05:38

运算符重载

运算符重载只是一种语法糖,所以了解是必须的,但是又不要有心里负担!
学到这里的时候,有两种情况:

  1. 对于运算符重载,人们容易变得过于热心。首先,它是一个娱乐玩具。注意,它仅仅是一个语法修饰,是另外一种调用函数的方法而已。用这种眼光看,没有理由重载一个运算符,除非它会使包含我们的类的代码变得更易写,尤其是更易读。 (记住,读代码的情况更多)如果不是这种情况,就不必麻烦去重载运算符。
  2. 对于运算符重载,另外一个通常的反映是恐慌:突然, C运算符不再有熟悉的意思。 “所有的东西都改变了,我的所有 C代码将做不同的事情!”但这不是事实。所有用于仅包含内部数据类型的表达式的运算符是不可能被改变的。我们永远不能重载下面的运算符使执行的行为不同。
    1 << 4;
    或者重载运算符使得下面的表达式有意义。
    1.414 << 2;
    仅仅是包含用户自定义类型的表达式可以有重载的运算符。

语法

定义一个重载运算符就像定义一个函数,只是该函数的名字是 o p e r a t o r @,这里 @代表运算符。函数参数表中参数的个数取决于两个因素:
1) 运算符是一元的(一个参数)还是二元的(两个参数)。
2) 运算符被定义为全局函数(对于一元是一个参数,对于二元是两个参数)还是成员函数(对于一元没有参数,对于二元是一个参数 — 对象变为左侧参数) 。

0 0
原创粉丝点击