Erzeugung mehrerer Objekte in C++ [] (Erzeugung mehrerer Objekte in C++), Lektion, Seite 723276
https://www.purl.org/stefan_ram/pub/mehrere_objekte_c++ (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Erzeugung mehrerer  Objekte in C++ 

Wenn wir mehrere  Objekt einer Klasse erzeugen, dann enthält jedes dieser Objekte jeweils ein eigenes  Feld.

So hat dann man mit zwei  Objekten beispielsweise auch zwei  unabhängige Felder, wie das folgende Beispielprogramm zeigt.

main.cpp

#include <iostream>
#include <ostream>

struct entity { double f; };

int main()
{ entity e0;
entity e1;
e0.f = 1.0;
e1.f = 2.0;
::std::cout << e0.f << '\n';
::std::cout << e1.f << '\n'; }

::std::cout
1
2

Der Spezifizierer der Klasse »entity« enthält zwar nur die Deklaration eines  Feldes »f«, jedoch erhält daraufhin jedes einzelne Exemplar jener Klasse ein solches Feld »f«. Daher gibt es bei zwei  Exemplaren jener Klasse also auch zwei  unabhängige Felder »f«, einmal das Feld »e0.f« und dann das Feld »e1.f«.

Zugriff auf verdeckte Klassennamen

main.cpp

#include <iostream>
#include <ostream>

struct entity { double entity{ 25 }; };

int main(){ entity entity; ::std::cout << entity.entity << '\n'; }

::std::cout
25

Das voranstehende Programm enthält auch noch eine Variable »entity«, die genauso heißt wie die Klasse »entity«. Ab der Stelle der Definition jener Variablen, steht »entity« dann für die Variable und nicht mehr die Klasse; der Name der Variablen „verdeckt“ den Namen der Klasse. Daher kann danach mit »entity e;« nicht noch eine zweite Variable der Klasse »entity« deklariert werden, denn »entity« stünde darin für die Variable und nicht mehr für den Typ!

Es ist jedoch möglich durch Qualifikation mit »struct« oder »class« auf den verdeckten Typnamen zuzugreifen.

main.cpp
#include <iostream>
#include <ostream>

struct entity { double entity{ 25 }; };

int main()
{ entity e1; ::std::cout << e1.entity << '\n';
struct entity e2; ::std::cout << e2.entity << '\n';
class entity e3; ::std::cout << e3.entity << '\n'; }
::std::cout
25
25
25

Übungsfragen

?   Objekte mit Feldern

Welche Ausgabe erzeugt das folgende Programm?

main.cpp

#include <iostream>
#include <ostream>

struct entity { ::std::string s; };

int main()
{ entity e0;
entity e1;
e1.s = "Anton";
e0.s = "Berta";
::std::cout << e0.s << '\n';
::std::cout << e1.s << '\n'; }

Übungsaufgaben

/   Schreiben und Verwenden einer Klassendefinition

Schreiben Sie eine Definition einer Klasse, die ein int-Feld enthält. Legen Sie zwei  Exemplare dieser Klasse an und setzen Sie das int-Feld bei dem einen Exemplar auf den Wert »12« bei dem anderen Exemplar auf den Wert »7«. Geben Sie dann schließlich die Werte der beiden Felder aus.

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 stefanram723276 stefan_ram:723276 Erzeugung mehrerer Objekte in C++ Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723276, slrprddef723276, 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/mehrere_objekte_c++