C++-Konstruktoren:Verwendung von Standardargumenten für die flexible Objekterstellung
Ein Konstruktor ist eine spezielle Mitgliedsfunktion in einer Klasse, die automatisch aufgerufen wird, wenn ein Objekt erstellt wird. Diese werden verwendet, um das Objekt mit Werten oder Standardeinstellungen zu initialisieren.
Während Standardargumente in C++ die Angabe von Standardwerten für Funktions- oder Konstruktorparameter ermöglichen.
Konstruktor mit Standardargumenten
Ein Konstruktor mit Standardargumenten ist ein Konstruktor, der die Erstellung eines Objekts mithilfe optionaler Parameter ermöglicht. Wo die Standardwerte für die Parameter bereitgestellt werden. Wenn der Benutzer also keine Werte übergibt, wird der Standardwert verwendet.
Syntax
Hier ist die Syntax für den Konstruktor mit Standardargumenten:
class ClassName {
public:
ClassName(parameter_Type parameter_Name = default_Value,
parameter_Type2 parameter_Name2 = default_Value2);
};
- Hier hat der Konstruktor denselben Namen wie die Klasse
- Für einen oder mehrere Parameter werden Standardwerte bereitgestellt.
- Wenn vom Benutzer kein Wert übergeben wird, wird dieser Standardwert verwendet.
Beispiel eines Konstruktors mit Standardargumenten
Hier ist das folgende Beispiel für einen Konstruktor mit Standardargumenten:
#include <iostream>
using namespace std;
// Function with a default argument
void printMessage(string message = "Hello, Tutorialspoint Learner") {
cout << message << endl;
}
int main() {
// Calling the function without an argument
printMessage(); // Prints the default message: "Hello, World!"
// Calling the function with a custom argument
printMessage("Hi, there!"); // Prints the custom message: "Hi, there!"
return 0;
}
Ausgabe
Hello, Tutorialspoint Learner Hi, there!
Erklärung
- Eine Funktion printMessage() wird erstellt und gibt einen Parameter mit dem Standardwert „Hallo, Tutorialspoint Learner“ an.
- Jetzt in main(), printMessage() Die Funktion wird ohne Argument aufgerufen, daher wird das Standardargument „Hallo, Tutorialspoint Learner“ verwendet.
- während in printMessage("Hi, there!") , haben wir explizit den Wert „Hi, there!“ übergeben. Dies überschreibt also das Standardargument.
Konstruktor mit mehreren Standardargumenten
Ein Konstruktor mit mehreren Standardargumenten gibt dem Benutzer Zugriff auf die Angabe von Standardwerten für mehr als einen Parameter. Dies bietet mehr Flexibilität und Zugriff auf die Übergabe beliebiger Kombinationen von Argumenten.
Beispiel
Hier ist das folgende Beispiel für einen Konstruktor mit mehreren Standardargumenten:
#include <iostream>
using namespace std;
class Box {
public:
int length, width, height;
// Constructor with multiple default arguments
Box(int l = 5, int w = 10, int h = 2) { // Default values for length, width, and height
length = l;
width = w;
height = h;
}
void display() {
cout << "Length: " << length << ", Width: " << width << ", Height: " << height << endl;
}
};
int main() {
// Creating objects with different numbers of arguments
Box box1;
Box box2(15);
Box box3(15, 20);
Box box4(15, 20, 25);
// Displaying the objects' values
box1.display();
box2.display();
box3.display();
box4.display();
return 0;
}
Ausgabe
Length: 5, Width: 10, Height: 2 Length: 15, Width: 10, Height: 2 Length: 15, Width: 20, Height: 2 Length: 15, Width: 20, Height: 25
Erklärung
- Zuerst wird die Klassenbox mit drei öffentlichen Mitgliedsvariablen definiert:Länge und Breite, wobei der Konstruktor Box(int l =5, int w =10, int h =2) ist hat Standardargumente für alle drei Parameter.
- Im Objekt Box box1; Es wird kein Argument angegeben, daher wird der Standardkonstruktor mit Standardwerten aufgerufen, was zu „Länge:5, Breite:10, Höhe:2“ führt.
- In Box box2(15); Die Länge wird mit 15 angegeben, Breite und Höhe werden jedoch nicht angegeben. Daher werden jeweils die Standardwerte verwendet.
- In Box box3(15, 20); Länge und Breite werden mit den Werten 15 bzw. 20 versehen, sodass die Standardwerte überschrieben und das entsprechende Ergebnis erzielt werden.
Hauptfunktionen von Konstruktoren mit Standardargumenten
Obwohl es regulären Funktionen ähnelt, bietet es mehr Flexibilität und Komfort beim Erstellen von Objekten.
Im Folgenden werden wir alle wichtigen Funktionen besprechen.
1. Standardwerte für Parameter und Flexibilität bei der Objekterstellung
Hier kann der Konstruktor Standardwerte für einen oder mehrere Parameter haben, die verwendet werden können, wenn vom Aufrufer kein Argument bereitgestellt wird, und mehrere Möglichkeiten zum Erstellen eines Objekts ermöglichen.
2. Vermeidung mehrerer Konstruktorüberladungen
Möglicherweise müssen Sie den Konstruktor für jede Kombination von Argumenten laden, was den Code umfangreicher macht, aber mit Standardargumenten kann der Konstruktor einmal geschrieben werden und er verarbeitet verschiedene Fälle automatisch.
3. Reihenfolge der Standardargumente
Bei mehreren Standardwertparametern können Sie die Standardargumente in der Mitte nicht überspringen, sobald Sie von rechts aus mit der Bereitstellung von Standardwerten beginnen.
Syntax
Box(int l = 1, int w); // Invalid: 'w' has no default, but 'l' does.
4. Standardargumente können mit Const-Mitgliedern verwendet werden
Wenn Ihre Klasse über konstante Mitglieder verfügt, können im Konstruktor Standardargumente bereitgestellt werden, um die Initialisierung zu vereinfachen.
Syntax
class Box {
public:
const int length, width;
Box(int l = 5, int w = 10) : length(l), width(w) {}
};
Dieser Konstruktor verwendet Standardargumente (Länge =5 und Breite =10), um die const-Mitglieder zu initialisieren.
C Sprache
- C#-Foreach-Schleife
- C# - Vererbung
- C#-Tutorial zu IF-, Switch-, For- und While-Schleifenanweisungen [Beispiele]
- Unterschied zwischen while und do-while:An Beispielen erklärt
- C#-switch-Anweisung
- C - Variable Argumente
- malloc() Funktion in der C-Bibliothek mit BEISPIEL
- Beherrschen von Zeigern und mehrdimensionalen Arrays in C
- C++ while und do...while Schleife
- C++ Basic Input/Output:Cout, Cin, Cerr Beispiel