MFC Klassen: Zugriff auf Klassenvaribalen aus anderer Klasse
-
also, ich würd mir mal erst c/c++ aneignen <- gehört nämlich zu den grundlagen !!!!!
-
Wenn ich das so mache:
class CEditorView public m_x; //... inline int CEditorView::getZahl() const { return x1; }
CLeftView::Mouse() { int t; t=getZahl(); //Fehler: getZahl nciht deklarierter Bezeichner }
So kann ich dann auch nciht auf die Methode der anderen Klasse zugreifen.
Könnt ihr mir nochmal helfen?
Gruß Christoph
-
Wenn dich das inline iritiert, lass es weg.
Dann muss der Funktionsrumpf aber ins cpp - ich hab ihn ins .h gepackt.Minifunktionen (Faustregel 5 Zeilen ohne {}) können inline gemacht werden und dann unter der Klasse ins .h geschrieben werden. Lies es nach, wenn du es genauer möchtest.
-
thodtie schrieb:
Wenn ich das so mache:
class CEditorView public m_x; //... inline int CEditorView::getZahl() const { return x1; }
CLeftView::Mouse() { int t; t=getZahl(); //Fehler: getZahl nciht deklarierter Bezeichner }
So kann ich dann auch nciht auf die Methode der anderen Klasse zugreifen.
Könnt ihr mir nochmal helfen?
Gruß Christoph
wundert dich dass das nicht funktioniert ?? mich nicht !
Du programmierst ??? mann, wenn ich das lese stellt es mir dir Haare auf !!!!
Nich mal die Grundlagen der C++ - Programmierung !!!!Erst mal einen fetten Schöcker über C++ durchackern, dann MSDN lesen, dann MFC coden und erst DANN solchen Schwachfug ins Forum posten !!!!!!!!
-
Motherfucker hat es schon ziemlich gut formuliert, auch wenn ich es nicht so ausgedrückt hätte.
Ich kann die Fehlermeldung nur wiederholen: Du hast die Funktionsdeklaration vergessen.
Was ist m_x?
Was ist x1?
-
Ich seh das ganze ein wenig anders.
Der Zugriff auf eine andere MFC Klasse im Doc/View Modell ist nicht ganz so einfach. Wie die grundlegenden Dinge funktionieren weiß ich natürlich.Ich hab das ganze jetzt gelöst mit dem Doc/View Modell.
Trotzdem danke für die hilfreichen Kommentare vorallem von motherfucker, bei dem passt auch der Schreibstil zu seinem Namen sowas unqualifiziertes!
-
Hallo? Kriege ich mal ne Antwort?
Gegen die "Mauer" rennst du bald wieder...
-
Was ist m_x?
Was ist x1?m_x ist vom Typ int auch x1
und x1 soll den Wert von m_x bekommen.Gruß Christoph
-
Wenn m_x eine Zahl ist, dann ist die Zeile nicht vollständig, die du da im Beitrag hast.
Wenn das public ist (was gerne aus Faulheit oder Unwissenheit gemacht wird), dann brauchst du die Funktion nicht, sondern kannst direkt mit Hilfe einer Instanz der enthaltenden Klasse darauf zugreifen.
Du musst dafür aber die aktuelle Instanz deines View haben. Also einen Zeiger darauf zum Beispiel. Da gibt es bestimmt eine Funktion, die dir den gibt.
(Such erstmal, ich muss auch suchen...)Wenn das nicht public ist, dann brauchst du so eine Funktion.
Okay?
-
thodtie schrieb:
Trotzdem danke für die hilfreichen Kommentare vorallem von motherfucker, bei dem passt auch der Schreibstil zu seinem Namen sowas unqualifiziertes!
Ist mir eine Ehre !