Zugriff auf eine andere Klasse
-
Ich habe mir eine eigene CPrintPic Klasse erstellt.
Jetzt möchte ich von der Klasse CLadePic abfragen welches
Radio Button in der CPrintPic Klasse ausgewählt wurde.
Die Member Variable heisst m_join.In der Klasse geht es so,aber nicht ausserhalb.
m_join.GetCheck();Geht das überhaupt ?
-
Wenn die Methode GetCheck() public ist, sollte es so gehen.
-
Eingefügt in CPrintPic.h
public:
m_join.GetCheck();Fehlermeldung:
nichtdeklarierter Bezeichner
-
Nein - CPrintPic() benötigt eine public Methode GetCheck() - die kannst du dann von außen aufrufen.
-
Verstehe ich das richtig das ich mir eine Methode
schreiben muss die die Member m_join ausliest.Das ist ja so umständlich,das muss noch
einfacher gehen.Ich habe hier 20 Member die ich abfrage.
Das kann doch nicht sein,das ich 20 verschiedene Methoden
schreiben muss.Bitte helft mir.
-
Janes schrieb:
Verstehe ich das richtig das ich mir eine Methode
schreiben muss die die Member m_join ausliest.Das ist ja so umständlich,das muss noch
einfacher gehen.Ich habe hier 20 Member die ich abfrage.
Das kann doch nicht sein,das ich 20 verschiedene Methoden
schreiben muss.Bitte helft mir.
Ja, das verstehst du richtig.
Doch, du musst wirklich 20 Methoden für die Members schreiben, außer du würdest die Members Public deklarieren, was aber kein guter Stil ist.
-
Mal abgesehen vom Stil,die Member in der anderen Klasse stehen
alle unter dem public:
Aber aus einer anderen Klasse habe ich keinen Zugriff darauf.
Bekomme immer diese Fehlermeldung: "nichtdeklarierter Bezeichner"
-
ich wirds so versuchen:
erstmal include "LadePic.h" falls das der header der Datei istDanach ein Objekt der Klasse anlegen
CLadePic m_LadePic; // Objekt erzeugendarüber dann auf die Variable zugreifen
m_LadePic.m_join.GetCheck();
-
Und das geht wiederrum nur wenn m_join public ist -.- Und das ist unsauber

Also wenn dann mit nem Pointer und Getter.. und Setter also Praktisch so:
class CLadePic { // ... protected: CButton m_join; // ... public: CButton* GetBtnJoin(void) { return &m_join; } // ... };und dann in der CPrintPic.h
class CPrintPic { // ... protected: CLadePic m_LadePic; // Also das muss nicht... musst halt nur irgendwo an deine CLadePic Klasse kommen ;) // ... };und in der CPrintPic.h
// ... CButton* pJoin = m_LadePic.GetBtnJoin(); pJoin->GetCheck(); // ...Oder halt:
class CLadePic { // ... public: bool GetJoinCheck(void) { return m_join.GetCheck(); } // ... }usw...
-
Oder du deklarierst die Klasse CLadePic als friend der Klasse CPrintPic, dann hast du Zugriff auf sämtliche Member.
class CPrintPic { private: friend CLadePic; CButton m_join; }