下列关于运算符重载的叙述中,正确的是

admin2021-07-02  30

问题    下列关于运算符重载的叙述中,正确的是

选项 A、可以通过重载创造出新的运算符
B、可以为重载运算符函数的参数设置默认值
C、可以将部分运算符函数重载为非成员函数
D、可以将任意运算符函数重载为静态成员函数

答案C

解析 C++中不能通过连接其他合法符号来创建任何新的操作符,A选项错误;除了函数调用操作符operator()之外,重载操作符时使用默认实参是非法的,B选项错误;并不是所有操作符都可以重载为静态成员函数,比如赋值操作符"="只能重载为类的非静态成员函数,因为静态成员函数是面向整个类的,不属于某个类对象,所以静态成员函数只能操作类的静态数据成员,而"="只能基于对象进行操作;另外操作符"<<"和">>"不能重载为类的成员函数,因为如果将这两种操作符重载为类的成员函数,左操作数将只能是该类类型的对象,这样的用法与正常I/O使用方式相反,为了支持正常用法,左操作数必须为标准库I/O内置类型,这又意味着如果该操作符重载为类的成员,那它必须是标准库内置类型的类成员,而标准库内置的类是不能人为添加成员的,D选项错误;答案为C。
转载请注明原文地址:https://jikaoti.com/ti/Uph0FFFM
0

最新回复(0)