C++重载 笔记

 如果运算符被重载为全局函数,那么只有一个参数的运算符叫做一元运算符,有两个参数的运算符叫做二元运算符。

如果运算符被重载为类的成员函数,那么一元运算符没有参数,二元运算符只有一个右侧参数,因为对象自己成了左侧参数。

运算符即可以定义为全局函数,也可以定义为成员函数。
= ()[] ->只能重载为成员函数


不能重载的运算符
1、不能改变C++内部数据类型(如Int float)的运算符
2、不能重载‘.’,因为‘.'在类中对任何成员都有意义。
3、不能重载C++运算符集合中没有的符号,如#@$等。原因:难以理解,难以确定优先级。
4、对已结存在的运算符进行重载时,不能改变优先级规则。

posted @ 2009-10-29 21:28  eping  阅读(289)  评论(0编辑  收藏  举报