gpt4 book ai didi

c++ - 什么时候使用内部运算符,什么时候使用外部运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:36 25 4
gpt4 key购买 nike

假设我定义了一个带有内部 + 运算符和外部 + 运算符的类;

class MyClass {
public:
MyClass operator +();
};

MyClass operator +(const MyClass& a);

如果在我的主程序中调用

MyClass a;
MyClass b = +a;

正在调用什么,这个(内部):

a.operator +()

或这个(外部)?:

operator +(a)

二元运算符的相同问题。

最佳答案

选择成员函数:可以直接绑定(bind)表达式a,非成员函数需要将MyClass转换为const MyClass 在绑定(bind)到引用参数之前。因此调用成员涉及更好的转换序列,使其成为最佳重载。

如果您从非成员中删除const,或者将const 添加到成员中,那么两者都同样可行;您应该会收到一条错误消息,指出重载不明确。

关于c++ - 什么时候使用内部运算符,什么时候使用外部运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23168999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com