gpt4 book ai didi

c++ - 自定义 == 运算符,哪一边重要?

转载 作者:行者123 更新时间:2023-11-28 06:52:10 26 4
gpt4 key购买 nike

JSON Spirit有一个方便的operator==

template< class Config >
bool Value_impl< Config >::operator==( const Value_impl& lhs ) const
{
if( this == &lhs ) return true;

if( type() != lhs.type() ) return false;

return v_ == lhs.v_;
}

变量 lhs 看起来像许多其他示例中熟悉的“左侧”,这对我来说意味着如果此运算符分配的内容不在左侧,则这将无法按预期工作边。

这样对吗?如果是,为什么?

无论哪种情况,请引用标准。

最佳答案

b = x == y; 转换为 b = x.operator==( y ); 所以 operator==() 必须为 x 定义,它接受 y 是什么类型的参数。

class Y
{
public:

};

class X
{
public:

bool operator==( Y rhs )
{
return false;
}
};

void tester()
{

X x;
Y y;

bool b = x == y; // works
b = y == x; // error

}

关于c++ - 自定义 == 运算符,哪一边重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23747111/

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