我的代码支持原生 C++ 类型和 Qt 类型。例如,有string
's 和QString
's 是“等价的”。
我有 2 个函数,一个需要string
',一个需要QString
'。QString
版本将参数转换为' string
,然后调用string
函数的版本。
这是问题的一些通用代码:
int myClass::LoadQString(const QString &tagName, QString &toReturn)
{
string tag = tagName.toStdString();
string ret = toReturn.toStdString();
//string& ret = toReturn.toStdString(); //This gives me an error
return LoadString(tag, ret);
}
int myClass::LoadString(const string& tagName, string& toReturn)
{
toReturn = "hello world!";
...
}
因此,这段代码将编译并运行......但是,当我调用第二个参数时,它一旦返回LoadQString()
就为空。QString
您可以在我的评论行中看到我试图string& ret = ...
获得工作参考的地方。如果我调用LoadString()
然后检查toReturn
它何时返回的值,它将是“hello world!” 正如预期的那样。
只是想让它LoadQString()
正常工作。
感谢你的帮助!