看板 C_and_CPP 關於我們 聯絡資訊
問題(Question): 請問如何正確規劃、分割 class 與 header 架構 ? 小弟目前寫一個 CPU 模擬器 開了以下幾個 class : Core, Instruction, Memory, Regsiter, ALU, Controller 不曉得怎麼檔案架構分割比較好 想請教板上各位高手 首先 Core 是最大的一個 class 內部包含 Instruction , Memory ... 等等 而 ALU , Controller 又需要存取 Instruction , Memory, Register 1. 那這樣在 Core.h 的 class Core 宣告中 要用 forward declaration 嗎 ? 例如: class ALU; class Controller; class Memory; class ... class Core{ public: .... private: Memory *imem, *dmem; // OK ALU alu; // compile error : field alu has incomplete type Controller controller; // compile error : field ... has incomplete type }; forward delclaration 似乎只能用 pointer 的方式 ? 所以在 Core 裡面包含的其他 class 看似都要用 pointer 囉 ? 2. 因為有很多訊號、指令等等 我想開 enum 去寫 但是 enum 好像只能宣告定義一次而已 假設我在 Instruction.h 中定義了 enum InstType { R_TYPE, I_TYPE, J_TYPE }; 但是 ALU 、 Controller 中也需要用到這個 enum 所以 ALU 、 Controller 要 #include "Instruction.h" ? 3. 因為 ALU , Controller 會互相存取資料、 call function 等等 Header include 要怎麼寫比較好 ? 可以互設為 friend class 嗎 ? class ALU; class Controller{ public: friend class ALU; private: ... } 像是這樣 ? 問題有點多 不好意思 麻煩各位了 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.69.224 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1399814678.A.578.html
cory8249:剛剛看到一篇不錯的: http://goo.gl/eKQkGh 05/11 21:35
damody:你的問題不適合斷行 05/11 23:05
已修正 ※ 編輯: cory8249 (220.137.69.224), 05/11/2014 23:15:52
plover:http://ppt.cc/kdCs 或許可以參考 05/14 10:27
damody:http://www.openemulation.com/ 05/14 12:12