[MS VisualC++] OOP & OpenGL sinnvoll verwenden

MirEgal

Grünschnabel
Ich habe alles was bei mir mit OpenGL zu tun hat, in eine eigene Klasse und Datei (header + cpp) gepackt. Jetzt habe ich die Klasse CMenue, von der ich Text erzeugen und löschen möchte.

Wie sollte mein Programm da am besten strukturiert werden?

Das Problem ist, soweit ich in den Anleitungen erkannt habe, wird jedesmal nur ein Abbild der Klasse erzeugt, wenn ich also in der Winmain
CMenue Menue;
und dasselbe in der COpenGL eingebe, wirkt sich das eine nicht aufs andre aus. Gibt es die Möglichkeit, globale Variablen über mehrere Dateien zu erzeugen?

Ungefährer Ablauf:
Laden von OpenGL
Kontrolle des Tastendrucks
bei esc Menue.LadeMenue();
in der LadeMenue dann OpenGLTextStack.AddText("Neu..") usw
in der OpenGL wird überprüft, ob Inhalt im OpenGLTextStack ist, und gegebenenfalls ausgegeben

das Problem ist aber, dass ich den Stack von der Winmain aus über OpenGL.Stack ansprechen muss und außerdem einen eigenen Stack für Menue und dann ne abfrage, die den Inhalt des Menuestacks in den OpenGLStack überträgt. Und so eine Abfrage wirft so ziemlich alle Vorteile von OOP über den Haufen. Gäbe es da besseres?
 
Oder, andersherum:

Wenn ich eine Klasse erstelle, wie schaffe ich es, von mehreren anderen Klassen bei mehreren Dateien auf eben jene Klasse zu zu greifen?
 
ich persönlich glaube globale variablen sind nicht gut. arbeite lieber mit rückgabefunktionen und zeigern.

mfg

leukos
 
Schon klar. Mir geht es eher darum, wenn ich jetzt eine Klasse in zwei anderen Klassen

CKlasse klasse;

definiere, wird jedesmal eine neues Objekt erzeugt (sofern ich das richtig kapiert hab). Ich will aber von den anderen Klassen aus auf das selbe Objekt zugreifen. Wie ginge das am besten?
 
Am besten wäre es wenn du dir überlegst welcher Klasse das Objekt gehören soll das du mit CKlasse klasse; erzeugen willst. Und dieser Klasse gibst du dann eine Get-Methode mit der du dir den Zeiger auf das Objekt von CKlasse geben lassen kannst.

Grüßle
Pit
 
Zurück