moa*_*ala 8 c++ qt const-reference
考虑以下代码:
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
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不更改方法的返回类型的情况下避免使用空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;
}
Run Code Online (Sandbox Code Playgroud)
该方法优于其他提出的方法的优点是该解决方案不需要改变界面MyClass.此外,使用默认参数可能会使您的类的用户感到困惑并导致错误的类使用.该解决方案对用户是透明的.
顺便问一下,你真的在课堂上使用C风格的数组吗?