011
08.07.2003, 22:05 Uhr
virtual
Sexiest Bit alive (Operator)
|
In der Regel spricht man von Instanziierung, wenn der Konstruktor einer Klasse aufgerufen wird und ein Objekt geboren wird. Ob der Speicher nun seit Stunden schon dem programm zugeordnet ist oder das betriebssystem einen Eingabedialog macht: "Bitte bau mal eine neue RAM bank ein, ich warte solange, bis du fertig bist!" ist aus C++ Sicht völlig egal.
Letzt endlich ist es eine Entscheidung des Betriebssystems, wann der Speicher zugeordnet wird. Er muß einfach da sein, wenn der Konstruktor aufgerufen wird.
Übrigens gibt des da auch noch das nette feature des Placement-news, welches die STL Allocatoren in der STL nutzen: Da kann man Objekte an einer bel. Speicherstelle konstruieren, ohne daß man Speicher belegt. Folgender Code erzeugt zwei Objekte von Klasse X, ohne daß jedesmal neuer Speicher belegt wird (sondern nur einmal):
C++: |
class X { }; X* px = new X; // speicher belegen und instance erzeugen px->~X(); // Instanze destruieren, speicher behalten new(px) X; // keinen Speicher belegen, nur instance erzeugen delete px; // nu is aber gut!
|
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) Dieser Post wurde am 08.07.2003 um 22:16 Uhr von virtual editiert. |