2010-11-20 12 views
0

TLBクラスオブジェクトへのポインタを持つハードウェアクラスがあり、コンストラクタで初期化しています。しかし、コードブロック(GNU GCC)は私にエラーを与えています "proj3_hardware.h | 15 | error: 'TLB'はタイプを指定しません" "proj3_hardware.h | 15 | error:expected ';' before '*' token "オブジェクトクラスへのポインタが「型名を指定していません」

コードのどこにエラーがあるのか​​分かりません。ありがとうございました。

proj3_hardware.h

#include <iostream> 
#include "proj3_globals.h" 
#include "proj3_pagetable.h" 
#include "proj3_tlb.h" 

class Hardware{ 

public: 

    // Defines the hardware parts 
    int global_simulation_time; 
    TLB* tlb; 
    PageManagement* pagemm; 

    // Hardware constructor and methods 
    Hardware(int pageTableType, int replacementAlgo); 

    void execute(); 
    void diskaccess(); 

}; 

proj3_tlb.h

#include <iostream> 
#include "proj3_globals.h" 

// Assumes that the TLB is using LRU 

class TLBEntry{ 

    public: 

     char validEntry; 
     int VirtualAddress; 
     int PhysicalAddress; 
     long LastUsed; 
}; 

class TLB{ 

    private: 

     TLBEntry entries[HARDWARE_TLBSIZE]; 
     int* simulation_time; 

    public: 

     TLB(int* simulation_time); 

     void tlb_add(int virtualaddress, int physicaladdress); 
     int tlb_lookup(int virtualaddress); 
     void tlb_flush(); 

}; 

答えて

0

は私のためにコンパイルします。

エラーは他のコードにある必要があります。

  • 疑わしい#define
  • 不足しているセミコロン:あなたのために他のヘッダファイルをチェックしてください!
  • が間違っているあなたはそれを得た警備員(この1つは私の最高の推測です)
+0

を含める...ヘッダーガードが問題でした。 – JaLooNz

関連する問題