gpt4 book ai didi

将指针作为参数传递给引用时的 C++ 指针转换

转载 作者:搜寻专家 更新时间:2023-10-31 01:18:56 25 4
gpt4 key购买 nike

我很好奇,是:

bool State::operator<(const State* S)
{
return this->operator<(*dynamic_cast<const State *>(S));
}

完全一样:

bool State::operator<(const State* S)
{
return this->operator<(*(S));
}

供引用this->operator<被调用的是:

bool State::operator<(const State& S)
{
return this->reward < S.reward ? true : false;
}

哪个更“正确”并且使用起来安全/可靠,或者,有什么实际区别吗?

最佳答案

不,第一个将指针转换为自身,实际上什么都不做,然后调用 const State* 重载,这导致无限循环。你不需要 dynamic_cast 直到你需要在运行时向下转换——这里没有向下转换,所以

return this->operator<(*S);

是唯一要做的事情。

关于将指针作为参数传递给引用时的 C++ 指针转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668106/

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