2013-10-28 2 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 б; класс А a (b); есть способ просто вызвать classA a; и создать ref для класса B внутри кода класса? – jsilva

+0

вы можете объявить объект по умолчанию для classA: «static classA default_obj;» и передать его в пустой конструктор или использовать его по умолчанию для существующего конструктора. например: 'classB (classA & ref = default_obj): pm (ref) {}' – SHR

+1

спасибо человеку. ты лучший :) – jsilva

Смежные вопросы