2013-10-28 105 views
0

我有一個班級做一些事情。參考初始化另一個類

class ClassA 
{ 

public: 
    ClassA() 
    { 
     for (unsigned i = 0; i < MAX_PROCESS_ID; ++i) 
      processDB[i] = 0; 
    }; 

    virtual ~ClassA(){ }; 

    int  create(int pID); 
    bool check(int pID); 
    bool kill(int pID); 
    int  returnpDB(int pID); 

private: 
    bool saveProcess(int pID, int type); 

protected: 
    int pDB[MAX_PROCESS_ID]; 
}; 

和我想要做的是從另一個初始化這個類,並保留一個參考。

例如:

class classB 
{ 

public: 
    classB(){}; 
    virtual ~classB(){ }; 

private: 

protected: 
    classA  &pm; 
}; 

我怎麼能做到這一點? (如果可以的話)

謝謝!

回答

2
class classB 
{ 

public: 
    classB(classA& ref):pm(ref){}; 
    virtual ~classB(){ }; 

private: 

protected: 
    classA  &pm; 
}; 
+0

感謝! 最後一個問題: 現在,我號召我主要做類: CLASSB B; classA a(b); 有一種方法可以調用classA;並在類代碼中創建classB的ref? – jsilva

+0

你可以爲classA聲明一個默認對象,例如:'static classA default_obj;'並將其賦給空的構造函數,或者將其用作默認的構造函數。如:classB(classA&ref = default_obj):pm(ref){}' – SHR

+1

謝謝。你是最棒的 :) – jsilva