gpt4 book ai didi

c++ - 为什么运算符有时是独立的,有时是类方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:46 26 4
gpt4 key购买 nike

为什么有时操作符覆盖被定义为类中的方法,例如

MyClass& MyClass::operatorFoo(MyClass& other) { .... return this; };

有时它是一个单独的函数,比如

MyClass& operatorFoo(MyClass& first, MyClass& bar)

它们是等价的吗?当您以一种方式进行操作以及以另一种方式进行操作时,适用哪些规则?

最佳答案

如果您希望能够执行类似 3 + obj 的操作,您必须定义一个自由(非成员)运算符。

如果你想让你的运营商受到保护或私有(private),你必须让他们成为方法。

一些运算符不能是自由函数,例如,operator->

这里已经回答了:

difference between global operator and member operator

关于c++ - 为什么运算符有时是独立的,有时是类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1862214/

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