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();
};
を含める...ヘッダーガードが問題でした。 – JaLooNz