Inhalt eines Objekts!
-
Guten Tag erstmal!
Ich sitze hier gerade an einer Frage meines Professors und versteh nicht genau was gemeint ist!
Er fragt:"Was beinhaltet ein Objekt?"Nach meiner Meinung wird durch den Aufruf des Konstruktors ein Objekt geschaffen, nach dem Vorbild der Klasse! das heißt doch eingetlich, dass streng genommen ein Objekt nicht die privaten-Klassenvariablen beinhalten, da auf sie ja nur durch getter-funktionen zugegriffen wird. oder beinhaltet ein Objekt sowohl die private-als auch die die public-variablen und funktionen???
bin wirklich verwirrt, was denn nun alles zu einem Objekt gehört!hoffe ihr könnt mir helfen
MfG
Freddy
-
Ein Objekt enthält in erster Linie Memberdaten?
-
Memberdaten der Klasse??? oder wie meinst du das?
-
Na sieh dir einfach die Klassendefinition an. Alle Member, die da notiert wurden (Methoden, Eigenschaften), gehören auch zu einer Instanz dieser Klasse, also zum Objekt.
-
_matze schrieb:
Na sieh dir einfach die Klassendefinition an. Alle Member, die da notiert wurden (Methoden, Eigenschaften), gehören auch zu einer Instanz dieser Klasse, also zum Objekt.
Da würde ich vorsichtig sein. Memberfunktionen oder statische Membervariablen gehören nicht wirklich zum Objekt - diese Dinge belegen zur Laufzeit keinen Speicher für jedes Objekt.
Hängt natürlich auch davon ab, wie die Frage genau zu verstehen ist...
-
Und wie isses mit virtuellen Funktionen?
-
Die virtuellen Funktionen selbst werden auch nicht in jedem Objekt gespeichert. Viel eher die Zeiger in den VTables.
-
FreddyFHB schrieb:
Ich sitze hier gerade an einer Frage meines Professors und versteh nicht genau was gemeint ist!
Er fragt:"Was beinhaltet ein Objekt?"Hallo Freddy,
nach Booch beinhaltet ein Objekt einen Zustand (Membervariablen), ein Verhalten (die Methoden) und eine Identität.
FreddyFHB schrieb:
Nach meiner Meinung wird durch den Aufruf des Konstruktors ein Objekt geschaffen, nach dem Vorbild der Klasse!
so könnte man sagen.
FreddyFHB schrieb:
... das heißt doch eingetlich, dass streng genommen ein Objekt nicht die privaten-Klassenvariablen beinhalten, da auf sie ja nur durch getter-funktionen zugegriffen wird. oder beinhaltet ein Objekt sowohl die private-als auch die die public-variablen und funktionen???
Ein Objekt beinhaltet alle (nicht statischen) Variablen - unabhängig von ihrer Sichtbarkeit (private, public, usw.).Ein Objekt beinhaltet auch die Methoden, nur den Code teilt es sich mit allen anderen Objekten der Klasse, da dieser für alle Objekte einer Klasse gleich ist.
Die Identität ist in C++ über den this-Zeiger gegeben. Ist eine Zeiger gleich den this-Zeiger, so handelt es sich um das identische Objekt. Sind die Membervariablen identisch und die this-Zeiger von zwei Objekten (zwangsläufig) verschieden, so sind die Objekte gleich.Gruß
Werner