Erzeugung und Auflösung lokaler Exemplaren in C++ [] (Erzeugung und Auflösung lokaler Exemplaren in C++), Lektion, Seite 722234
https://www.purl.org/stefan_ram/pub/lokale_exemplare_c++ (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Erzeugung und Auflösung lokaler Exemplare in C++ 

Klassen, wie ::std::string werden in C++  als benutzerdefinierte Typen  bezeichnet, auch wenn sie in der Standardbibliothek der Programmiersprache definiert sind.

Erzeugung eines ::std::string-Exemplars

Ein Exemplar einer Klasse kann wie eine lokale Blockvariable eines Typs erzeugt werden, indem als Typnamen der Name einer Klasse verwendet wird.

In dem folgenden Programm wird auf diese Weise ein Exemplar der Klasse »::std::string« erzeugt, das mit dem Text »alpha« initialisiert wird. Es repräsentiert dann diesen Text.

main.cpp

#include <iostream>
#include <string>

int main()
{ ::std::string const s{ "alpha" };
::std::cout << s << '\n'; }

::std::cout
alpha

Als Initialisierer  (initializer ) sehen wir hier - etwas vereinfachend – den Teil einer Variablendeklaration an, welcher direkt auf den Namen der Variablen folgt und den Anfangszustand (Anfangswert) dieser Variablen festlegen kann. (Bei einer Reihung können vor dem Initialisierer noch eckige Klammern stehen.)

In dem obigen Programmbeispiel ist der Initialisierer beispielsweise »{ "alpha" }«.

Auflösung von ::std::string-Exemplaren

Wenn die Ausführung des Blocks, in dem eine lokale Variable definiert wurde, endet, so endet damit auch die Lebenszeit der Variablen und damit des Exemplars, welches diese Variable enthält. Damit endet in dem folgenden Programmbeispiel die Lebenszeit des ::std::string-Exemplars in der Variablen »a« beispielsweise direkt nach der Ausgabe dieses ::std::string-Exemplars.

main.cpp

#include <iostream>
#include <string>

int main() /* Ende der Lebenszeit v */
{ { ::std::string const a{ "alpha" }; ::std::cout << a << '\n'; }
{ ::std::string const g{ "gamma" }; ::std::cout << g << '\n'; }}

::std::cout
alpha
gamma

Wir sprechen von der Auflösung  (Vernichtung) eines Objekts, um den Übergang von einem Zeitraum, in dem das Objekt verwendet werden kann (etwa um Informationen zu speichern) und in der Regel auch Speicherplatz belegt, zu einem direkt folgenden Zeitraum zu bezeichnen, in dem das Objekt nicht mehr verwendet werden kann und keinen Speicherplatz mehr belegt.

Ein Exemplar einer Klasse, welches als lokale Variable benannt wurde und mit dem Ende der Lebenszeit dieser Variablen aufgelöst wird, nennen wir manchmal auch lokales Exemplar, obwohl es eigentlich nicht das Exemplar ist, das lokal ist, sondern die es enthaltende Variable.

Ein Objekt  ist ein Speicherstück, das eine Information eines bestimmten Datentyps aufnehmen kann, auch eines fundamentalen Typs wie »int«. Als Exemplar  bezeichnen wir ein Objekt dann, wenn es ein Exemplar einer Klasse ist, also wenn sein Typ eine Klasse ist. Ob ein Typ eine Klasse ist, kann der Dokumentation der Bibliothek entnommen werden.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722234 stefan_ram:722234 Erzeugung und Auflösung lokaler Exemplaren in C++ Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722234, slrprddef722234, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/lokale_exemplare_c++