简述运算符重载的规则。
(1) C++中绝大部分的运算符允许重载,不能重载的运算符只有少数几个。
(2) c ++语言中只能对已有的c ++运算符进行重载,不允许用户自己定义新的运算符。
(3) 运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造完成的。一般来讲,重载的功能应当与原有的功能相类似(如用“ + "实现加法,用“一"实现减法)。
(4) 重载不能改变运算符的操作对象(即操作数)的个数。
(5) 重载不能改变运算符原有的优先级。
(6) 重载不能改变运算符原有的结合特性。
(7) 运算符重载函数的参数至少应有一个是类对象(或类对象的引用)。
(8) 运算符重载函数可以是普通函数,也可以是类的成员函数,还可以是类的友元函数。
(9) 一般而言,用于类对象的运算符必须重载,但是赋值运算符“:”例外,不必用户进行重载。但在某些情况下,例如数据成员中包含指向动态分配内存的指针成员时,使用系统提供的对象赋值运算符函数就不能满足程序的要求,在赋值时可能出现错误。在这种情况下,就需要用户自己编写赋值运算符重载函数。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
(1) C++中绝大部分的运算符允许重载,不能重载的运算符只有少数几个。
(2) c ++语言中只能对已有的c ++运算符进行重载,不允许用户自己定义新的运算符。
(3) 运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造完成的。一般来讲,重载的功能应当与原有的功能相类似(如用“ + "实现加法,用“一"实现减法)。
(4) 重载不能改变运算符的操作对象(即操作数)的个数。
(5) 重载不能改变运算符原有的优先级。
(6) 重载不能改变运算符原有的结合特性。
(7) 运算符重载函数的参数至少应有一个是类对象(或类对象的引用)。
(8) 运算符重载函数可以是普通函数,也可以是类的成员函数,还可以是类的友元函数。
(9) 一般而言,用于类对象的运算符必须重载,但是赋值运算符“:”例外,不必用户进行重载。但在某些情况下,例如数据成员中包含指向动态分配内存的指针成员时,使用系统提供的对象赋值运算符函数就不能满足程序的要求,在赋值时可能出现错误。在这种情况下,就需要用户自己编写赋值运算符重载函数。