Variablen in anderen Klassen verwenden



  • Hallo,
    ich habe gerade ein Problem, unzwar verwende ich in meiner main.cpp eine Funktion, welche

    RenderWindow dasfenster(VideoMode(1920,1080))
    

    heißt, nur ich möchte jetzt in einer anderen Klasse auf "dasfenster" zugreifen, nur wie stelle ich das am besten an ?

    Mfg



  • Du musst der anderen Klasse bei Erzeugung eine Referenz/Pointer auf dasfenster mitgeben.



  • Sind ziemlich neue Worte für mich, wie macht man so etwas ? 😕



  • Versuche nochmal genauer zu erklären, was ich erreichen möchte, unzwar habe ich in der Datei main.cpp

    RenderWindow fenster(VideoMode(1920,1080), " ")
    

    definiert, nun möchte ich in der Datei map.cpp auf "fenster" zugreifen, in dem ich

    fenster.draw(sprite);
    

    benutze, nur ich bekomme als Error :

    Der Ausdruck muss einen Klassentypen aufweisen !

    Wie schaffe ich es nun, das auch "fenster" in der Datei / Klasse definiert ist ?



  • struct AndereKlasse{ //in anderer Datei
    	RenderWindow &fenster;
    	AndereKlasse(RenderWindow &f) : fenster(f){}
    	void draw(const Sprite &sprite){
    		f.draw(sprite);
    	}
    };
    
    int main(){
    	RenderWindow dasfenster(VideoMode(1920,1080));
    	AndereKlasse ak(dasfenster);
    	Sprite s;
    	ak.draw(s);
    }
    


  • Das ist nicht das was ich möchte, ich möchte einfach nur auf "fenster" aus meiner main.cpp zugreifen können um z.B. .draw(); benutzen können. Also die Frage ist wie kann ich einfach die Variable in die andere Datei includieren ?



  • Hallo Sothsch,

    so wird das nichts. Bevor du mit GUI-Programmierung anfängst, solltest du dir erst die Grundlagen von C++ festigen (z.B. als Stichwort: Variablen-Scope).

    Welches GUI-Framework benutzt du denn (SFML, Ogre, ...)?

    Wenn du des Englischen mächtig bist, dann schau dir mal How to use a global for my render window an (der Fragesteller hatte wohl ein ähnliches Problem).



  • Th69 schrieb:

    Welches GUI-Framework benutzt du denn (SFML, Ogre, ...)?

    Das sieht nach SFML aus...

    Aber deine anderen Tipps sind wichtiger zu beherzen.


Anmelden zum Antworten