Instanzvariable vs. lokale Variable in Klassen



  • Hi,

    ich stehe gerade ein wenig auf dem Schlauch.

    Wenn ich in einer Klasse eine Funktion wie z.B.

    double PunktEinsPlusZwei(double p1, double p2);
    

    habe und innerhalb der Funktion zusätzliche Variablen nutzen möchte, dann muss ich die nicht im headerfile als Klassenvariable deklarieren, sondern es reicht hier lokal, denn selbst wenn ich mehrere Klasseninstanzen erzeuge, werden die Variablen da sie lokal sind, wieder zerstört bzw. neu angelegt und kommen sich nicht in die Quere, oder?

    Danke 🙂



  • Wenn du in der Funktion neue Variablen mit double x; oder so deklarierst sind die immer lokal. Egal ob freie Funktion oder Memberfunktion.



  • Danke 🙂



  • AufDemSchlauchSteher schrieb:

    [...] denn selbst wenn ich mehrere Klasseninstanzen erzeuge, werden die Variablen da sie lokal sind, wieder zerstört bzw. neu angelegt und kommen sich nicht in die Quere, oder?

    Und um auch diesen Teil der Frage zu beantworten: nein, lokale Variablen kommen sich nicht in die Quere, selbst wenn sich die Funktion rekursiv selbst nochmal aufruft und auch nicht wenn die Funktion zeitgleich aus verschiedenen Threads aufgerufen wird - es sei denn die lokale Variable ist static deklariert, oder als Referenz auf eine nicht-lokale Variable, aber ich denke darum geht es bei deiner Frage nicht 😃

    Finnegan


Anmelden zum Antworten