2013-01-06 29 views
11

मैं वास्तव में अपने मेमोरी मैनेजर में पेजिंग के अनुकरण को लागू करने की कोशिश कर रहा हूं, मैंने एक स्थिर पृष्ठ तालिका बनाने की कोशिश की, लेकिन जब मैं प्रिंट करने का प्रयास करता हूं तो इसकी संदर्भ त्रुटि यह।स्टेटिक सदस्य फ़ंक्शन के अंदर 'स्टेटिक क्लास सदस्य चर' के लिए अनिर्धारित संदर्भ

#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 

एक लंबे लंबे समय से इस त्रुटि हो रही है, कृपया मदद

उत्तर

22

आप केवल घोषितpageTable सदस्य चर, आप करने के लिए है परिभाषित यह रूप में अच्छी तरह।

int ** MemoryManager::pageTable; 
+2

यह :) समस्या हल हो गया है: यह मूल रूप से एक कार्यान्वयन (स्रोत) फ़ाइल में घोषणा दोहरा द्वारा किया जाता है –