分类: C/C++
2011-05-08 15:35:59
C++中,重载与普通函数有两个区别:
语法不同,如果运算符处于两个参数之间或者参数之后,那么它将会被调用。
编译器决定哪个函数将会被调用,例如:如果使用浮点加运算,那么编译器就会调用执行浮点加法运算函数,如果一个参数为整型,编译器会调用一个特殊的函数来将整型转换为浮点型。
有些重载函数必须为成员函数,有些可以是成员函数或者友元函数
C++中,可能定义一个新的操作符在类之间进行操作,这些操作就像正常函数定义一样,出了在操作符之前加上关键字operator,一样,编译器会自动决定类型的转换来调用定义的操作符重载。
C++重载语法:
大致定义的语法为:operator @,@就为被重载的运算符,重载的参数列表依赖于下面两个因素:
是否为一元运算符(一个参数)还是二元运算符(两个参数)
是否定义的是全局函数(一元运算符一个参数,二元运算符两个参数operator@(a,b)),还是成员函数(一元操作符无参数,二元操作符一个参数-这样对象就成为了左参数a.operator@(b))。
编译运行:
当对象作为形参进行传递时,类的成员函数是可以访问对象私有成员变量。
1.至于函数参数如果不对其进行修改就定义为const类型。
2.如果函数是类成员就可以定义为const类成员
3.返回类型的选择取决于重载操作符的类型,如果返回对象则可以进行返回临时性对象,这样不失为性能优化。