我正在製作一個遊戲,其中有一個Level類,用於處理向量中存儲的所有對象並更改它們。如何使const C++類訪問所有其他類的私有成員
而且我有另一個名爲Engine.h的類,它具有靜態函數,可以根據向量Level來計算事物,但不會改變它們中的任何內容。級別調用引擎功能並基於返回的內容執行操作。
但是由於Engine需要查看Level所擁有的向量,所以我被迫將向量的一串指針(const)傳遞給每個Engine函數,以便它可以根據矢量的當前狀態進行計算。
有沒有什麼辦法可以讓Engine只能訪問Level的所有成員變量,但不能編輯它們中的任何一個。某種'常朋友'?
我剛纔意識到有一個對象級別,所以我也需要有一種方法來爲引擎指定一個Level的特定對象,它可以是一個'const friend '。 也許這會變得複雜,如果沒有解決方案,將很多成員變量傳遞給Engine函數是不好的做法,或者是如何完成的。使各級成員變量常量也?)
'friend'不會覆蓋'const',所以傳遞一個'常量等級*'到結識類/函數會給只讀訪問。 – 2014-08-30 13:38:59
'我被迫將一堆向量的指針(const)傳遞給每個引擎函數'爲什麼你不能通過const成員函數暴露這些向量? – 2014-08-30 13:54:17