我有一個傳統的功能,看起來像這樣內的非const功能:如何調用一個const函數(C++)
int Random() const
{
return var_ ? 4 : 0;
}
,我需要這樣,現在來調用遺留代碼中的功能看起來是這樣的:
int Random() const
{
return var_ ? newCall(4) : 0;
}
的問題是,我得到這個錯誤:
In member function 'virtual int Random() const':
class.cc:145: error: passing 'const int' as 'this' argument of 'int newCall(int)' discards qualifiers
現在我知道爲了解決THI s錯誤我可以讓我的newCall()
const函數。但後來我在newCall()
有幾個funciton調用,所以我現在必須做所有這些函數調用const。等等等等,直到最終我覺得我的一半程序將會是const。
我的問題:有什麼辦法可以在Random()中調用一個不是const的函數嗎?或沒有任何人有任何想法如何實現newCall()
Random()
而不使我的程序一半const。
感謝
如果您確定新呼叫不會修改 「這個」 -josh
你可以使Random()非const。 – GWW 2011-02-15 19:30:19
我想但Random()是我無法真正觸及的遺留代碼。 – Grammin 2011-02-15 19:31:12
這是4選擇一個無偏見的骰子(從而使它真的是隨機的)。 – 2011-02-15 19:49:36