2010-11-20 18 views
0

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(); 

}; 

Répondre

0

Compile pour moi.

L'erreur doit être dans un autre code; Vérifiez vos autres fichiers d'en-tête pour:

  • manque des points-virgules #define suspect s?
  • mal (gardes comprennent celui-ci est ma meilleure estimation)
+0

Vous l'avez ... la garde d'en-tête était le problème. – JaLooNz