Klasse global erstellen.



  • Wenn ich eine Klasse in einer Funktion erstelle ist sie ja nur für die Funktion erstellt worden. Wie kann ich sie global erstellen, ohne es außerhalb der Funktion zu tun?



  • gar nicht... meinst du wirklich "Klasse" oder vielleicht "Objekt"?

    Objekte kann man mit new erstellen, aber global werden sie dadurch noch nicht. Nur nicht mehr am Ende der Funktion gelöscht.



  • static



  • häää

    wenn du wirklich klassen meinst, dann definier sie doch ausserhalb der funktion, was hindert dich daran?
    und falls du statt klassen objecte meinst, dann entweder der einfache weg, die objecte ausserhalb der funktion zu erstellen, also

    Foo foo; // Ganz oben
    
    // Code
    
    int main(...)
    {
        foo = Foo();
    }
    

    oder der bessere weg, siehe singelton-muster



  • Hmm...also ich glaube, du meinst wirklich Objekt und nicht Klasse, da du von einer Annahme sprachst ("Wenn ich eine Klasse in einer Funktion erstelle ist sie ja nur für die Funktion erstellt worden"), die du sicher irgendwo gelesen hast. Also was meinst du genau mit "global erstellen"? Dass sie/es (objekt) von jeder Funktion aus zugänglich sein soll über eine Variable (also globale Var.), oder dass es einfach nur existiert, also nicht auf dem Stack erzeugt wird (static oder new)? Z.B. kannst du ein Objekt dynamisch erzeugen (mit new) und dann die Adresse zurückgeben. Auch wenn die Funktion beendet ist, "lebt" das Objekt immernoch!


Anmelden zum Antworten