1 操作符重载
operator op(argument-list)
eg operator +(argument)
注意:
(1)重载的操作符不能违反操作符原来的语法规则,例如不能将%,重载成之使用一个操作符
(2) 不能重新定义新的操作符
(3)不能重载下面的操作符:sizeof . :: ?: 等等
2 友元函数
friend type operator op(argument-list)
注意:
(1)友元函数只有定义时加friend关键字,生命时和正常函数一样
(2)友元函数不是类的成员函数,但是可以访问类的私有成员
以上两种是重载操作符的方法,二者没有好坏之分,根据不同的情况使用
3 类的自动转换
(1)只有一个参数的构造函数,可以把和参数相同类型转换成类的类型
className(int para);
可以把整型转换成类的类型
注意:只有存在一个参数的构造函数时才可以,而且可以用关键字(explicit)显示的取消这种转换
即
explicit className(int para) 没有转换的功能,只是个一般的构造函数
(2)把类的类型转换成一般的数据类型
operator type(); 如: operator int(); operator double();等等
注意: 没有返回值,没有参数,必须是类的成员函数,而且不能存在二义性的情况
本文介绍了C++中操作符重载的两种方法及注意事项,并详细解释了类的自动类型转换过程,包括如何通过构造函数实现从基本类型到类类型的转换,以及如何通过成员函数实现从类类型到基本类型的转换。

被折叠的 条评论
为什么被折叠?



