karsten76: Stack und Heap

Beitrag lesen

Hallo Martin,

überhaupt nicht. Denn wenn ich sage "Eine Variable ist ein Objekt", dann folgt daraus ja nicht zwangsläufig, dass jedes Objekt auch eine Variable ist. Nicht jede Aussage ist umkehrbar eindeutig!

Ich glaube aus dem gleichen Grund wie Du nicht sagen würdest ein Objekt ist eine Variable, kann ich nicht sagen eine Variable ist ein Objekt, es sind einfach verschiedene Dinge.

das in dieser Zeile
   new QLabel();
erzeugte Objekt würdest Du sicher nicht als Variable bezeichnen.

Nein. Da wird ein Objekt erzeugt (sowohl im Sinn der Speicherverwaltung, als auch im Sinn der OOP). Aber dieses Objekt ist mit keinem Namen, keinem Bezeichner verknüpft und daher keine Variable. Es ist ja nach seiner Erzeugung nicht einmal mehr ansprechbar!

Ansprechbar ist es schon z.B.

(new QLabel()).DoSomething();

würde funktionieren. Der Compiler greift dabei direkt auf das Rückgaberegister zu. Jedenfalls sind wir uns einig, dass das ein Objekt ist.

Nein, es ändern sich nur die Variablenwerte.

Ich würde diese Frage mit NEIN beantworten.

Siehste, so unterschiedlich liegen wir doch gar nicht.

Wenn Du das hier betrachtest
  int x = 5;
  int y = 5;
kämst Du doch sicher nicht auf den Gedanken zu sagen x und y sind die gleichen Variablen.

Nein, natürlich nicht. Es sind zwei verschiedene Variablen (verschiedener Speicherplatz, verschiedene Namen), die den gleichen Typ haben und zufällig den gleichen Wert bekommen.

Worauf du jetzt mit deinen Ausführungen eigentlich hinaus willst, bleibt mir aber auch verborgen.

Ich wollte darauf hinaus, dass eine Variable nicht mit ihrem Wert gleichgesetzt werden kann.

Nun ja, vielleicht sollten wir es einfach dabei bewenden lassen, dass wir unterschiedliche Ansichten haben.

MfG