ネイティブC++タイプとQtタイプの両方をサポートするコードがあります。たとえば、「同等」の「」と「」がありますstring
。QString
私には2つの関数があります。1つはstring
'sを取り、もう1つは'sを取りQString
ます。QString
バージョンはパラメータを'sに変換してから、関数のバージョンを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!";
...
}
したがって、このコードはコンパイルされて実行されます...ただし、2番目のパラメーターを呼び出すとLoadQString()
、2番目のパラメーターが返されると空QString
になります。コメント行でstring& ret = ...
、参照を機能させようとした場所を確認できます。電話LoadString()
して戻ってきたときの値を確認すると、toReturn
「helloworld!」になります。予想通り。
LoadQString()
を正しく動作させようとしているだけです。
ご協力ありがとうございます!