Wie kommt es häufig vor, könnten Sie die Vorstellungen von Umfang und Lebensdauer werden Mischen, so dass ich beide adressieren.
Der Umfang eines Namens in einem Konstruktor deklariert der gleiche wie der Umfang von jedem lokalen Name ist (die Tatsache, dass es ein Konstruktor haupt keinen Unterschied macht): der Umfang des Namens zu dem Ende erstreckt des Blocks, in dem der Name deklariert ist (und es kann "Löcher" haben, wenn der Name ausgeblendet ist durch eine Erklärung eines sogar "mehr lokalen" entify mit dem gleichen Namen).
Die Lebensdauer von am Objekt in einem Konstruktor definiert durch die gleichen Regeln wie für die gesamte Lebensdauer eines lokal definierten Objekts bestimmt wird (die Tatsache, dass es ein Konstruktor keinen Unterschied macht, was auch immer): ein Objekt mit automatischer Speicherdauer wird am Ende seines Gültigkeitsbereichs zerstört, während ein Objekt mit statischer Speicherdauer für immer lebt.
Danke! Ich war mir nur nicht sicher, ob der Konstruktor als normale Funktion betrachtet wurde. –
Nein ganz genau. Objekte, die mit einer statischen Speicherdauer definiert sind, gehen nicht in den Geltungsbereich, werden aber * nicht * zerstört, sobald der Konstruktor fertig ist. – AnT
@AnT Wie unterscheidet sich das von der Statik in anderen Funktionen? – Caleth