2010-11-20 25 views
0

Bir TLB sınıfı nesnesine bir işaretçi içeren bir donanım sınıfım var ve bunu yapıcıda başlatıyorum. Ancak, Codeblocks (GNU GCC) bana hata veriyor "proj3_hardware.h | 15 | error: 'TLB' bir tür adı vermiyor" "proj3_hardware.h | 15 | error: expected ';' '*' belirteci 'önce "Bir nesne sınıfının işaretçisi atma "bir türü adı değil"

Koddaki hatanın nerede olduğunu göremiyorum. Teşekkür ederim.

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

}; 

cevap

0

benim için derler

#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.

Hata, diğer kodlarda olmalıdır;

  • şüpheli #define s
  • eksik noktalı virgül: için diğer başlık dosyalarını kontrol edin?
  • yanlış korumaları (bu benim en iyi varsayım)
+0

Senindir ... başlık bekçi sorun bulunmaktadır. – JaLooNz

İlgili konular