gpt4 book ai didi

C++ : returning reference to temporary

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:58 27 4
gpt4 key购买 nike

我已经制作了这个 C++ 代码:

std::string const &     Operand::toString() const
{
std::ostringstream convert;
convert << this->value;
return convert.str();
}

编译器告诉我:返回临时引用

我是否被迫将 convert.str() 放入我的 Operand 类中?

编辑:这是为了学校练习,我不能改变原型(prototype)

最佳答案

convert.str();

这将返回一个 std::string 对象,该对象将在 Operand::toString() 返回后销毁。因此,这是一个临时变量,其生命周期仅限于该函数的范围。您应该按值仅返回 string 本身:

std::string Operand::toString() const
{
std::ostringstream convert;
convert << this->value;
return convert.str();
}

或:

const std::string Operand::toString() const
{
std::ostringstream convert;
convert << this->value;
return convert.str();
}

关于C++ : returning reference to temporary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21958465/

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