QString createString()
{
return QString("foobar");
}
const QString& getString()
{
return createString();
}
Run Code Online (Sandbox Code Playgroud)
这将产生VS2013着名的"警告C4172:返回本地变量或临时变量的地址".
现在,如果我改变了第二种方法
const QString& getString()
{
const QString& binder = createString();
return binder;
}
Run Code Online (Sandbox Code Playgroud)
哪个不再报告错误.这是一种安全的方法来修复警告而不改变API的签名吗?为什么这样做?
| 归档时间: |
|
| 查看次数: |
1476 次 |
| 最近记录: |