Hallo Martin,
Ich würde wegen der direkten Beziehung beides durchgehen lassen und daher auch die Aussage "eine Variable ist auch ein Objekt" hinnehmen.
wenn Du diesen Gedanken weiterführst kommst Du aber spätestens bei dynamisch erzeugten Objekten in Erklärungsnöte.
das in dieser Zeile
new QLabel();
erzeugte Objekt würdest Du sicher nicht als Variable bezeichnen.
QLabel label;
und
QLabel *label;
sind Variablen. Das eine kann eine Objekt-Instanz enthalten und das andere eine Speicheradresse einer Objekt-Instanz. Die enthaltenen Werte können geändert werden.
Ändern sich dadurch die Variablen? - Ich glaube, die Antwort darauf trennt uns.
Ich würde diese Frage mit NEIN beantworten.
Wenn Du mal zur Mathematik schaust ist es doch auch eindeutig festgelegt. Eine Variable ist ein Platzhalter. In der Programmierung wird diesem Platzhalter, wie Du richtig sagtest, zusätzlich ein Typ zugewiesen.
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.
MfG