Zugriff zwischen 2 gleiche Objekten
-
Hali halo halöle
Ich habe in meinen Programm (Projekt) 2 Dialogfeld-objekte, und muß von einem
Dialogfeld aus auf Membervariablen des anderen Dialogfeldes zugreifen.Im Hauptdialogfeld existieren öffentliche (public) Member-Variablen,
und auf diese möchte ich zugreifen aus einem (protected) "Funktion im zweiten
Dialogfeld" !Nun ich habe gelernt auf öffentliche Variablen kann ich von überall aus zugreifen, so bin ich verwundert daß dies nicht klappt.
Habe auch schon probiert mit #include "HauptDialog.h" in Dialog2.cpp .
Geht aber nicht.
Ich denke ich habe noch etwas nicht verstanden!!für Hilfen jeder Art Vielen Dank !
CIAO
-
Es ist richtig. Da hast du noch Grundlagen nicht verstanden.
Übergib den this-Zeiger des Hauptdialohs an deinen 2ten Dialog.
Im 2ten Dialog
public: HauptDlg* m_pOwner; void SetOwner(HauptDlg* pOwner) { m_pOwner = pOwner; };
Im Hauptdialog
Dialog2 m_dialog2; m_dialog2.SetOwner(this);
Im 2ten Dialog zugriff auf Hauptdlg mit
m_pOwner-> funktion();
-
C++ - Stichwort: Kapselung
Es gibt keine öffentlichen Variablen mehr!Einer der Vorteile von COM: Man wird regelrecht dazu gezwungen, die Merkmale der objektorientierten Programmierung einzuhalten!
-
Hab´diesen Vorschlag ausprobiert, geht aber nicht.
Ich Ahne es worauf die Lösung hinaus will, klappt aber nicht.Also am besten erläutere ich nochmal genauer:
Mein Programm ist rein dialogfeldbasierend. Im Hauptdialog wird etwas eingestellt un in Abhängigkeit dessen wird in einem zweiten Dialogfenster etwas ausgegeben. Das heißt in meinem Project sind zwei Klassen die sich von CDialog ableiten.
Und jetzt kommt mein Verständnisproblem:
Vom Hauptdialogfeld existiert zumindenst nach meines Wissens kein Objekt.Ich habe keine Ahnung wie Windows das handhabt. Von meinen zweiten Dialogfeld existiert ein Objekt und das ist ok.
So jetzt weiß ich auch generell nicht wie mann zwischen zwei Objekten derselben Klasse aufeinander zugreift.Innerhalb NUR EINER Klasse weiß ich das man mit public Funktionen auf private Elemente zugreift.Weiterhin meine ich gelesen zu haben daß die public Funktionen dazu da sind damit andere Klassen bzw. Objekte darauf zugreifen können. Jetzt wie sieht es aus mit protected und private Elemente innerhalb NUR EINER Klasse.Können die auch auf die eigene public Funktionen zugreifen??
Oder kann ein private Funktion auf protected Elemente zugreifen?? Oder umgekehrt??Wie das bei der Ableitung ist das meine ich verstanden zu haben (ich meine die Zugriffsrechte).Also der Fall wo mann innerhalb der eigene Superklasse und Subklasse bleibt.
Aber wenn zwei Objekte egal welcher Art aufeinander zugreifen sollen dann verstehe ich nicht wie das gemacht werden soll. Geht das nur mit Zeigern ?viele Grüße bolilein !
[ Dieser Beitrag wurde am 13.12.2002 um 20:06 Uhr von bolilein editiert. ]