关于C++思考(三)
来源:互联网 发布:最新网络歌手排行榜 编辑:程序博客网 时间:2024/04/29 05:38
运算符重载
运算符重载只是一种语法糖,所以了解是必须的,但是又不要有心里负担!
学到这里的时候,有两种情况:
- 对于运算符重载,人们容易变得过于热心。首先,它是一个娱乐玩具。注意,它仅仅是一个语法修饰,是另外一种调用函数的方法而已。用这种眼光看,没有理由重载一个运算符,除非它会使包含我们的类的代码变得更易写,尤其是更易读。 (记住,读代码的情况更多)如果不是这种情况,就不必麻烦去重载运算符。
- 对于运算符重载,另外一个通常的反映是恐慌:突然, C运算符不再有熟悉的意思。 “所有的东西都改变了,我的所有 C代码将做不同的事情!”但这不是事实。所有用于仅包含内部数据类型的表达式的运算符是不可能被改变的。我们永远不能重载下面的运算符使执行的行为不同。
1 << 4;
或者重载运算符使得下面的表达式有意义。
1.414 << 2;
仅仅是包含用户自定义类型的表达式可以有重载的运算符。
语法
定义一个重载运算符就像定义一个函数,只是该函数的名字是 o p e r a t o r @,这里 @代表运算符。函数参数表中参数的个数取决于两个因素:
1) 运算符是一元的(一个参数)还是二元的(两个参数)。
2) 运算符被定义为全局函数(对于一元是一个参数,对于二元是两个参数)还是成员函数(对于一元没有参数,对于二元是一个参数 — 对象变为左侧参数) 。
0 0
- 关于C++思考(三)
- 关于refactoring思考(三)
- 关于C的思考
- 关于C的思考
- 关于C的思考
- 关于C的思考
- 关于约瑟夫环的思考(三) c++
- 关于移动互联网的三点思考
- 关于C语言字符串函数的思考
- 关于C语言字符串函数的思考
- c语言关于指针的思考
- 【C++】关于日历编程的一点思考
- c#-关于自动属性的思考
- c问题---关于数组溢出的思考
- 关于c加加的一点思考
- 关于java与C的一些思考
- 职业发展思考(三)
- 关于大型网站技术演进的思考(三)--存储的瓶颈(3)
- java中抽象类与接口的最本质的区别
- MySQL的学习(1)查询结果带行号的方法
- BUG: in a frame because it set 'X-Frame-Options' to 'deny'
- 使用Eclipse调试Java程序的10个技巧
- 随意写程序发现的一些细节问题一节思考
- 关于C++思考(三)
- Android Fragment 真正的完全解析(下)
- js面试题
- 基于安卓下的事件回调机制
- DeepLearning工具Theano学习记录(一) 逻辑斯蒂回归
- Microsoft ADO Data Control,version 6.0(OLEDB) 不支持此接口
- 解决uploadify在使用IE内核等浏览器无法使用
- HDU2841 Visible Trees【容斥原理】
- 刘宝庆老师<中层管理者技能提升>助理:林静文 电话:18818552408