下述哪种情况需要运算符被重载为非成员函数:( )。
A
重载的运算符为"="
B
左操作数是int
C
最左边的操作数必须是一个类的对象(或类对象的引用)
D
运算符返回引用
C++运算符重载之非成员函数
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
恐怖如斯恐怖如斯啊 2024-11-25 00:01关注以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在C++中,运算符重载可以被重载为成员函数或非成员函数。关于你给出的选项,我们可以逐一分析:
A. 重载的运算符为"=":赋值运算符可以被重载为成员函数或非成员函数。因此,这个选项没有明确指出需要重载为非成员函数的情况。
B. 左操作数是int:这取决于具体情况。如果运算符的左操作数是一个类对象,并且需要处理与int类型的交互,那么可能需要重载为非成员函数。但如果左操作数本身就是int类型,则不需要重载。
C. 最左边的操作数必须是一个类的对象(或类对象的引用):这通常是成员函数的特性,其中操作数之一是类对象(或引用)。这个选项没有指出为什么需要重载为非成员函数。
D. 运算符返回引用:是否返回引用主要取决于你的设计和用途。对于非成员函数,如果设计为修改两个操作数的状态或者设计为赋值类的行为,可能会选择返回引用以便可以直接对操作数进行操作或进行链式赋值。因此,在某些情况下,可能需要重载为非成员函数来确保运算符返回引用。
综上所述,对于选项D,“运算符返回引用”,在某些设计场景中可能需要将其重载为非成员函数。所以正确答案是D。
解决 无用评论 打赏 举报