c++操作符重载小结

来源:互联网 发布:三菱变频器软件 编辑:程序博客网 时间:2024/05/16 12:45

对于函数重载,大家都不陌生。

所谓重载函数,是指:具有相同的函数名,具有不同的特征标,这里的特征标不同具体为:具有的参数类型,参数个数不同,且只要有一个不同就构成重载。注意:与返回类型无关。

操作符重载:我们一般将其作为类的成员函数,但也不必一定是成员函数,但必须至少有一个操作数是用户定义的类型(如果都是系统定义的基本类型,系统内部早就定义完好,无需你来操作)格式: operator op(argus)   op代表将要重载的操作符,且必须为有效的C++操作符,不能虚构一个新的符号,譬如@。在操作符表示法中:操作符左侧的对象是调用对象,操作符右侧的对象是作为参数传递来的对象

对于操作符重载,我们有哪些限制条件呢?

1、重载后的操作符至少有一个操作数是用户定义的类型,防止用户为标准类型重载操作符;

2、使用操作符不能违反原本的操作符的句法规则;如将 %求模操作符定义为一个单目运算符  X%;

3、不能定义新的操作符,如@;

4、不能重载下面的操作符:

a.sizeof——sizeof操作符;

b. ——句点操作符;

c  *——成员指针操作符;

d  :: ——作用域解析操作符;

e  ?:——条件操作符;

f   typeid——一个RTTI操作符;

g  const_cast  ——强制类型转换操作符;static_castdynamic_castreinterrupt_caststatic_cast;

5、只能通过成员函数进行重载的操作符主要有:

=  ——赋值操作符

()——函数调用操作符

[]——下标操作符

->——通过指针访问类成员的操作符。

主要通过阅读C++ Primer Plus而摘抄的读书笔记。

另外附上一篇我认为比较详细的blog:

http://www.cppblog.com/shongbee2/archive/2009/04/01/78554.html


0 0
原创粉丝点击