asm, c, c++ are my all
-- Core In Computer
posts - 139,  comments - 123,  trackbacks - 0
[转]重载函数和重载运算符

重载函数有如下约束
@ 该组重载函数中任何两个都必须有不同的参量表。
@ 具有相同类型参量表、仅在返回值类型上不同的重载函数会引起错误。
@ 成员函数的重载不能仅基于一个说明为静态的,另一个说明为非静态的。
@ typedef说明并未定义新的类型,它们仅为已存在的类型引入了一个同义词。它们不能影响重载机制。
@ 枚举类型是一些可区分的类型,故可以区分重载函数。
@ 从区分重载函数的意义上说,类型“数组”和“指针”是相同的。对于一维数组来说是正确的。


运算符重载有如下的约束
@ 运算符要遵守它们同内部类型一起使用所指定的优先原则、分组及操作数的个数。
@ 单目运算符说明为成员函数不带参量;如果说明为全局函数,要带一个参量。双目运算符说明为成员函数只带一个参量;如果说明为全局函数,要带两个参量。
@ 所有的重载运算符除了赋值(operator=)外均可被派生类继承。
@ 重载运算符的成员函数的第一个参量总是激活该运算符的对象的类类型参量(运算符被定义的类,或者定义了运算符的类的派生类)。对于第一个参量也不支持转换。

具体内容:
单目运算符函数
ret-type operator op()            //成员,使用类型的内部成员
ret-type operator op(arg)        //全局,参数为对其操作的类型的变量

双目运算符函数
ret-type oprator op(arg)        //arg可以为任意类型的变量
ret-type operator op(arg1, arg2)
        //全局,arg1和arg2是参量。至少其中之一必须是操作类类型。


注意:对于双目运算符的返回类型没有限制;然而大多数用户自定义型双目运算符返回类类型或类类型的引用。

参考:
C++运算符重载转换运算符
C++运算符重载赋值运算符
posted on 2006-07-28 00:43 Jerry Cat 阅读(372) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(7)

随笔档案

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜