gpt4 book ai didi

c++ - 我没有得到运算符重载

转载 作者:行者123 更新时间:2023-11-28 05:13:57 25 4
gpt4 key购买 nike

struct nodo{
int v,k,dist;

nodo(){
}

nodo(int _v, int _k, int _dist){
v=_v;
k=_k;
dist=_dist;
}

bool operator < (nodo X) const{
return dist>X.dist;
}
}

我正在尝试理解这段代码。但我没有得到 bool 运算符部分。

“return dist>X.dist”是什么意思?如果 dist 大于 X.dist,返回 true?

最佳答案

what does mean by "return dist>X.dist"? If dist is bigger than X.dist, return true?

你是对的。

运算符与普通成员函数没有什么不同。编译器只在找到该运算符时执行该函数。

你可以试着写一个打印语句,看看会发生什么

bool operator < (nodo X) const{
std::cout << "Operator < called" << std::endl;
return dist < X.dist; // I changed the sign because it looks more natural
}

// ...

int main() {
nodo smallnode(1,2,3);
nodo bignode(4,5,6);
std::cout << "First node Vs Second Node" << std::endl;
if (smallnode < bignode)
std::cout << "It's smaller!" << std::endl;
else
std::cout << "It's bigger!" << std::endl;
}

关于c++ - 我没有得到运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43028065/

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