Konstruktoren mit Parameterübergaben in C++
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);
(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;
};
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
Schlagwörter
Optionen
0 weitere Dokumente zum Thema "Programmiersprachen"
5 Diskussionen zum Thema im Forum
5 Diskussionen zum Thema im Forum
- Muss-Assoziationen in Java (3 Antworten)
- Einführung in die Programmierng Pseudocode Frage (2 Antworten)
- Java problem (3 Antworten)
- Hilfe bei Java-programmiersprache (0 Antworten)
- Dokumentation über Pascal-Dreieck bis 23.11 (3 Antworten)
- mehr ...
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.
Es handelt sich hier um einen fremden, nutzergenerierten Inhalt für den keine Haftung übernommen wird.
PASSENDE FRAGEN:
- Muss-Assoziationen in JavaWas sind Muss-Assoziationen und wie setzt man diese um? Muss eine Präsentation darüber halten, zusammen mit parametrisierten ..
- Einführung in die Programmierng Pseudocode FrageKonvertierung: Konkatenation: Ich muss diese zwei Begriffe der Informatik erklären Wie kann ich diese Begriffe erlären..
- Java problemhoffe ihr könnt mir helfen Aufgabenstellung: Aufgabe 3 1. Teil______________________________________________________________..
- Hilfe bei Java-programmiersprachehallo Liebe Leute! Ich habe eine Informatik-Aufgabe über die Java-programmiersprache.Also, das ist ein Informatik-praktikum. Ich..
- Dokumentation über Pascal-Dreieck bis 23.11Brauche Hilfe bei einer Doku, ich soll das Pascalsche Dreieck in Java programmieren und eine ausführliche Doku schreiben. Das..
- mehr ...