評價: 0 回應: 0 閱覽: 109
置頂

規劃、分割 class 與 header 架構

請問如何正確規劃、分割 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"  ?

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言