2013-01-06 6 views
11

Je suis en train d'essayer d'implémenter une simulation de pagination, dans mon gestionnaire de mémoire, j'ai essayé de créer une table de page statique, mais son erreur de référence lorsque j'essaie d'imprimer il.référence indéfinie à `Statique Classe membre membre à l'intérieur de la fonction membre statique '

#ifndef MEMORYMANAGER_H 
#define MEMORYMANAGER_H 
#include "memory.h" 

class MemoryManager 
{ 
    private: 
     PhysicalMemory RAM; 
     LogicalMemory VM; 
     int offsetValue; 
     static int ** pageTable; 
    public: 
     MemoryManager(); 
     bool addProcess(TimeSliceRequest); 
     void printVirtualMemory(); 
     /* 
     * Page Table Initialization 
     **/ 
     static void initializePageTable(){ 
      pageTable = new int * [pageSize]; 
      for (int i=0; i<pageSize; i++) { 
       pageTable[i] = new int [2]; 
      } 
     } 
     static int getPageTabe(int x, int y) { 
      return MemoryManager::pageTable[x][y]; // undefined reference to `MemoryManager::pageTable' 
     } 
     static void printPageTable(){ 
      for(int i=0; i<pageSize; i++){ 
       for(int j=0; j<2; j++) { 
        cout << getPageTabe(i,j); 
       } 
       cout << endl; 
      } 
     } 
}; 


#endif // MEMORYMANAGER_H 

Obtenir cette erreur d'une très longtemps, s'il vous plaît aider

Répondre

22

Vous ne déclariez la variable membre pageTable, vous devez définir aussi bien. Cela se fait en répétant essentiellement la déclaration dans une mise en œuvre (source) fichier:

int ** MemoryManager::pageTable; 
+2

Got it :) Problème résolu –

Questions connexes