因爲我不是C(++)專家,所以我被編譯器的一些固執難住,不想將QString轉換爲QString *。 我有一個函數:將QString轉換爲QString的指針
bool getNextMessage(int sId, QString *msg, QString *cmd)
我使用的指針,在這裏,因爲我不能返回多個變量(被寵壞的Perl編碼器;)在C),我想在一段時間(getNextMessage(使用這個.. 。)){...}樣式循環。 內部的功能有一些SQL foo和這樣的:
msg = QString("");
cmd = QString("");
return false;
所有編譯器從這個產生是這樣的:
cannot convert 'QString' to 'QString*' in assignment
難道你親愛的鄉親們請拿起謎給我嗎?謝謝。 :)
編輯: 解決方案:現在使用參考感謝來自leemes的指針。
謝謝,不知道引用,它現在的作品。 – BastetFurry
函數的輸出參數實際上是其中一種查看情況,我發現指針可以超過引用:在堆棧上創建QString foo,然後通過&foo傳遞 - &表示它是out參數。這種模式的一個例子是.e.g。 QString :: toInt(bool * ok),其中ok返回是否解析int成功。 –
@FrankOsterfeld當參數是可選的時候,我同意你的意見,就像在'QString :: toInt'示例中一樣。但是,如果它是強制性的,我們不能傳遞「空引用」。所以默認值是一個事後不用的實例......最後,這是一個口味問題,我想。 – leemes