Inhaltskonstruktoren in C++ [] (Inhaltskonstruktoren in C++), Notizen, Seite 723540
https://www.purl.org/stefan_ram/pub/inhaltskonstruktoren_c++ (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Parametrisierte Konstruktoren in C++ 

Ein Konstruktor ist ein Teil einer Klasse, der einer Funktion ähnelt, aber nicht wie eine Funktion aufgerufen, sondern in bestimmten Fällen automatisch herangezogen wird.

Wie eine Funktion, so kann auch ein Konstruktor parametrisiert  sein, also Parameter  haben.

Wir haben sogar schon einen solchen parametrisierten Konstruktor kennengelernt: Den Kopierkonstruktor (27.2.).

Der Kopierkonstruktor hat einen Parameter mit der Klasse, in der er auch selber enthalten ist.

Der Kopierkonstruktor ist also ein parametrisierter Konstruktor.

In einer Klasse kann es auch parametrisierte Konstruktoren geben, die keine  Kopierkonstruktoren sind.

Wir stellen hier ein Beispiel aus der Klasse »::std::string« vor.

Der Konstruktor für C -Zeichenfolgen

Proklamation der Klasse »::std::string« (vereinfacht)
namespace std
{ class string
{ string( string const str );
string( char const * );
char const * c_str() const;
char const * data() const; }}

Der Konstruktor »string( char const * )« akzeptiert ein Argument vom Typ »char const *«. Dies ist der Typ einfacher Zeichenfolgenliterale, die kein »s« am Ende haben.

main.cpp

#include <initializer_list>
#include <ostream>
#include <iostream>
#include <string>

using namespace ::std::literals;

int main()
{ { ::std::string s { "Kopierkonstruktor"s };
::std::cout << s << '\n'; }
{ ::std::string s { "const-char-*-Konstruktor" }; /* hier kein "auto" und kein ""s! */
::std::cout << s << '\n'; }}

transcript
Kopierkonstruktor
const-char-*-Konstruktor

Einen Konstruktor, der einen Parameter hat, nennt man auch einen Wandlungskonstruktor, weil er es erlaubt, einen Wert in ein Objekt des angegebenen Typs „umzuwandlen“. In manchen Fällen werden solche Konstruktoren automatisch („implizit“) herangezogen, wenn die Programmiersprache Werte zwischen den beiden Typen umwandeln muß.

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 stefanram723540 stefan_ram:723540 Inhaltskonstruktoren in C++ Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723540, slrprddef723540, 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/inhaltskonstruktoren_c++