Menu schließen

Konstruktoren mit Parameterübergaben in C++

Alles zu Programmiersprachen

Konstruktoren mit Parametern und Paramterübergabe in C++


Der Sinn das einem Konstruktor Parameter übergeben werden können liegt darin, dass man nicht immer jedes Objekt einer Klasse mit den gleichen Standartwerten initialisieren möchte. So kann man denselben Konstruktor für mehrere verschiedene Objekte benutzen und nur dessen Werte werden geändert, so dass man keine neue Klasse schreiben muss.
Da die Werte die dem Konstruktor übergeben werden nicht aus der Klasse selbst kommen können müssen sie wie hier im ersten Beispiel bei der Objekterzeugung übergeben werden.
Die Syntax ist entweder <Klassenname><Objektname>(wert_1, wert_2, ..., wert_n);
oder <Klassenname><Objektname>=<Konstruktor/Klassenname>
(wert_1, wert_2, ..., wert_n);
Im ersten Beispiel werden einem Konstruktor einer Klasse BASIS aus der main die werte 1, 2 und 3 übergeben.

Beispiel 1:
class BASIS
int a, b, c;

public:
BASIS( int ca, int cb, int cc);
};
BASIS: : BASIS (int ca, int cb, int cc)
a=ca;
b=cb;
c=cc;
void main()
BASIS obj_bas = BASIS ( 1, 2, 3);
Im zweiten Beispiel sieht man wie so ein Konstruktor von einer Klasse ABGELEITET von dem Konstruktor der Klasse BASIS verwendet wird, und wie direkt diesem Konstruktor Werte übergeben werden und wie ein Wert der dem Konstruktor ABGELEITET übergeben wird auch von dem Konstruktor BASIS verwendet werden kann. Ausserdem sieht man hier beide Syntaxen zur Übergabe von Werten an den Konstruktor.

Beispiel 2:
class BASIS
int a, b, c;

public:
BASIS( int ca, int cb, int cc);
};
BASIS: : BASIS( int ca, int cb, int cc)
a=ca;
b=cb;
c=cc;
};
class ABGELEITET: public BASIS
int x, y, z;

public:
ABGELEITET( int cx, int cy, int cz);
};
ABGELEITET: : ABGELEITET( int cx, int cy, int cz, int abgcc) : BASIS( 2,3,abgcc)
x=cx; //aendert die werte von x, y, und z auf 12, 13, und 14, und von a, b und c auf
y=cy; //2, 3 und 2
z=cz;
void main()
BASIS test1 = BASIS( 7,8,9);
ABGELEITET test( 12, 13, 14, 2);
Man kann auch sogenannte Defaultwerte des Konstruktors setzen, wenn man in die Zeile
BASIS: : BASIS (int ca, int cb, int cc)

aus dem ersten Beispiel noch etwas dazu schreibt:
BASIS: : BASIS (int ca = 1, int cb = 1, int cc = 1 )
Nun erwartet der Konstruktor entweder einen Wert oder er benutzt die Defaultwerte 1, 1 und 1.

Wenn man also in der main schreibt:
BASIS obj_bas = BASIS ( 1, 2, 3);

Bleibt alles so wie im ersten Beispiel, falls man aber schreiben würde:
BASIS obj_bas = BASIS ( , );
Würde der Konstruktor seine Defaultargumente benutzten und a, b und c auf 1 setzten.

Um das ganze auch an einem etwas sinnvolleren Programm zu sehen:

Beispiel 3:
// Basisklasse --------------------------------------------------------------
class RAUBKATZE

protected:
int schnurrhaare,
beine;
char name[20];

public:
RAUBKATZE(char *ich, int fuesse, int haare);
void zeigen();
};
// Konstruktor der Basisklasse mit Parameter
RAUBKATZE:: RAUBKATZE (char *ich, int fuesse, int haare)
strcpy(name,ich);
beine = fuesse;
schnurrhaare = haare;
void RAUBKATZE::zeigen()
cout << "Ich heisse " << name
<< " und habe " <<schnurrhaare << " schnurrhaare und besitze "
<< beine <<" beine."<<endl<<endl;
// Abgeleitete Klasse -------------------------------------------------------
class TIGER: public RAUBKATZE

public:
TIGER ();
void fauchen();
};
// Konstruktor der abgeleiteten Klasse
TIGER:: TIGER () : RAUBKATZE ("Tiger",4, 50)
void TIGER::fauchen()
cout<<"ich fauche...";
//---------------------------------------------------------------------------
void main()
// Objekt erzeugen
RAUBKATZE loewe = RAUBKATZE ("Raubkatze", 4, 20);
TIGER mitze;
loewe.zeigen();
mitze.zeigen();
mitze.fauchen();
getch();
//------------------------------------------------------------------
Inhalt
C++, Konstruktoren mit Parameterübergabe (Defaultparameter) + einige Anwendungsbeispiele (578 Wörter)
Hochgeladen
von unbekannt
Optionen
Hausaufgabe herunterladen: PDFPDF, Download als DOCDOC
  • Bewertung 4.1 von 5 auf Basis von 45 Stimmen
  • 1
  • 2
  • 3
  • 4
  • 5
4.1/5 Punkte (45 Votes)



Seite drucken | Melden
Kostenlos eine Frage an unsere Informatik-Experten stellen:

0 weitere Dokumente zum Thema "Programmiersprachen"
5 Diskussionen zum Thema im Forum
Wenn du dieses Dokument verwendest, zitiere es bitte als: "Konstruktoren mit Parameterübergaben in C++", https://e-hausaufgaben.de/Hausaufgaben/D2794-Klausur-Leistungskurs-Informatik-Konstruktoren-Parameteruebergabe.php, Abgerufen 22.12.2024 12:53 Uhr

Es handelt sich hier um einen fremden, nutzergenerierten Inhalt für den keine Haftung übernommen wird.
Download: PDFPDF, Download als DOCDOC
PASSENDE FRAGEN: