Przekazywanie klasy do innej klasy przez referencje
Ostatnio zmodyfikowano 2011-11-16 21:44
TheSnake Temat założony przez niniejszego użytkownika |
Przekazywanie klasy do innej klasy przez referencje » 2011-11-15 20:57:49 Witam, mam problem z wskaźnikami/referencjami w klasach. Mam klasą CGame, w której jedną z zmiennych jest inna klasa CEventReceiver EventReceiver; Ma też inną klasę, która też jest zmienną w tej klasie (CCamera Camera). Jak mogę przekazać do klasy CCamera jakiś wskaźnik stworzonej już klasy EventReceiver, by z klasy CCamera móc wykonywać metody na tym samym obiekcie? Mam niby działający kod (tzn. kompiluje się :D), ale nic się nie dzieje, nie reaguje w ogóle. class CGame { public: CCamera Camera; CEventReceiver EventReceiver; };
Klasy CCamera i CEventReceiver mają tylko zwykłe metody do testu typu printf("DZIALA");. W jednej z metod CGame mam Camera.Init( < tu_chce_przekazac_klase_EventReceiver > );
Chciałbym w potem z klasy Camera móc wykonywać czynności na EventReceiver'ze tak jak na zwykłej klasie, jak powinienem to zrobić? Pozdrawiam. |
|
pekfos |
» 2011-11-15 20:59:53 Pokaż co masz. |
|
TheSnake Temat założony przez niniejszego użytkownika |
» 2011-11-15 21:13:45 Mm... CCamera.hclass CCamera { public: void Init( CEventReceiver & evtRecv ); CEventReceiver EventReceiver; };
W CCamera.cpp mam z definiowaną metodę Init: void CCamera::Init( CEventReceiver & evntRec ) { EventReceiver = evntRec; }
CGame.hclass CGame { public: CGame(); ~CGame(); private: CCamera Camera; CEventReceiver EventReceiver; void InitializeGame(); };
CGame.cppvoid CGame::InitializeGame() { Camera.Init( EventReceiver ); }
|
|
TheSnake Temat założony przez niniejszego użytkownika |
» 2011-11-16 18:23:13 Nikt? ... :| |
|
malan |
» 2011-11-16 21:44:41 class CCamera { public: void Init( CEventReceiver * evtRecv ) { EventReceiver = evtRecv; } CEventReceiver * EventReceiver; };
int main() { CCamera camera; CEventReceiver events; camera.Init( & events ); } Nie sprawdzałem, ale powinno działać. Analogicznie zrób z drugą klasą. |
|
« 1 » |