J'ai une classe matérielle ayant un pointeur vers un objet de classe TLB, et l'initialisant dans le constructeur. Cependant, Codeblocks (GNU GCC) me donne l'erreur "proj3_hardware.h | 15 | error: 'TLB' ne nomme pas un type" "proj3_hardware.h | 15 | erreur: attendu ';' avant "*" jeton "Pointeur vers un lancement de classe d'objet "ne nomme pas un type"
Je ne peux pas voir où est l'erreur dans le code. Je vous remercie.
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();
};
Vous l'avez ... la garde d'en-tête était le problème. – JaLooNz