gpt4 book ai didi

c++ - 如何在失败的情况下返回 const QString 引用?

转载 作者:可可西里 更新时间:2023-11-01 17:36:03 26 4
gpt4 key购买 nike

考虑以下代码:

const QString& MyClass::getID(int index) const
{
if (i < myArraySize && myArray[i]) {
return myArray[i]->id; // id is a QString
} else {
return my_global_empty_qstring; // is a global empty QString
}
}

如何在不更改方法的返回类型的情况下避免出现空的 QString? (似乎返回分配在堆栈上的空 QString 是个坏主意)

谢谢。

最佳答案

你不能。要么不返回 const 引用,要么像这样使用局部静态变量:

const QString& MyClass::getID(int index) const {
if (i < myArraySize && (myArray[i] != 0)) {
return myArray[i]->id; // id is a QString
}

static const QString emptyString;
return emptyString;
}

与其他建议方法相比,此方法的优势在于此解决方案不需要更改 MyClass 的接口(interface)。此外,使用默认参数可能会使您的类的用户感到困惑并导致错误的类使用。该解决方案对用户是透明的。

顺便问一下,你真的在​​类里面使用了 C 风格的数组吗?

关于c++ - 如何在失败的情况下返回 const QString 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352683/

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