logo

C++-Konstruktor

In C++ ist der Konstruktor eine spezielle Methode, die zum Zeitpunkt der Objekterstellung automatisch aufgerufen wird. Es wird allgemein verwendet, um die Datenelemente eines neuen Objekts zu initialisieren. Der Konstruktor in C++ hat denselben Namen wie Klasse oder Struktur.

Kurz gesagt: Eine bestimmte Prozedur namens Konstruktor wird automatisch aufgerufen, wenn ein Objekt in C++ erstellt wird. Im Allgemeinen wird es verwendet, um die Datenelemente neuer Dinge zu erstellen. In C++ dient der Klassen- oder Strukturname auch als Konstruktorname. Wenn ein Objekt fertiggestellt ist, wird der Konstruktor aufgerufen. Da er die Werte erstellt oder Daten für das Ding bereitstellt, wird er als Konstruktor bezeichnet.

Der Constructors-Prototyp sieht folgendermaßen aus:

 (list-of-parameters); 

Die folgende Syntax wird verwendet, um den Konstruktor der Klasse zu definieren:

 (list-of-parameters) { // constructor definition } 

Die folgende Syntax wird verwendet, um einen Konstruktor außerhalb einer Klasse zu definieren:

 : : (list-of-parameters){ // constructor definition} 

Konstruktoren haben keinen Rückgabetyp, da sie keinen Rückgabewert haben.

In C++ kann es zwei Arten von Konstruktoren geben.

  • Standardkonstruktor
  • Parametrisierter Konstruktor

C++-Standardkonstruktor

Ein Konstruktor, der kein Argument hat, wird als Standardkonstruktor bezeichnet. Es wird zum Zeitpunkt der Objekterstellung aufgerufen.

Sehen wir uns das einfache Beispiel des C++-Standardkonstruktors an.

 #include using namespace std; class Employee { public: Employee() { cout&lt;<'default constructor invoked'<<endl; } }; int main(void) { employee e1; creating an object of e2; return 0; < pre> <p> <strong>Output:</strong> </p> <pre>Default Constructor Invoked Default Constructor Invoked </pre> <h2>C++ Parameterized Constructor</h2> <p>A constructor which has parameters is called parameterized constructor. It is used to provide different values to distinct objects.</p> <p>Let&apos;s see the simple example of C++ Parameterized Constructor.</p> <pre> #include using namespace std; class Employee { public: int id;//data member (also instance variable) string name;//data member(also instance variable) float salary; Employee(int i, string n, float s) { id = i; name = n; salary = s; } void display() { cout&lt; <id<<' '<<name<<' '<<salary<<endl; } }; int main(void) { employee e1="Employee(101," 'sonoo', 890000); creating an object of e2="Employee(102," 'nakul', 59000); e1.display(); e2.display(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre>101 Sonoo 890000 102 Nakul 59000 </pre> <h2>What distinguishes constructors from a typical member function?</h2> <ol class="points"> <li>Constructor&apos;s name is the same as the class&apos;s</li> <li>Default There isn&apos;t an input argument for constructors. However, input arguments are available for copy and parameterized constructors.</li> <li>There is no return type for constructors.</li> <li>An object&apos;s constructor is invoked automatically upon creation.</li> <li>It must be shown in the classroom&apos;s open area.</li> <li>The C++ compiler creates a default constructor for the object if a constructor is not specified (expects any parameters and has an empty body).</li> </ol> <p>By using a practical example, let&apos;s learn about the various constructor types in C++. Imagine you visited a store to purchase a marker. What are your alternatives if you want to buy a marker? For the first one, you ask a store to give you a marker, given that you didn&apos;t specify the brand name or colour of the marker you wanted, simply asking for one amount to a request. So, when we just said, &apos;I just need a marker,&apos; he would hand us whatever the most popular marker was in the market or his store. The default constructor is exactly what it sounds like! The second approach is to go into a store and specify that you want a red marker of the XYZ brand. He will give you that marker since you have brought up the subject. The parameters have been set in this instance thus. And a parameterized constructor is exactly what it sounds like! The third one requires you to visit a store and declare that you want a marker that looks like this (a physical marker on your hand). The shopkeeper will thus notice that marker. He will provide you with a new marker when you say all right. Therefore, make a copy of that marker. And that is what a copy constructor does!</p> <h2>What are the characteristics of a constructor?</h2> <ol class="points"> <li>The constructor has the same name as the class it belongs to.</li> <li>Although it is possible, constructors are typically declared in the class&apos;s public section. However, this is not a must.</li> <li>Because constructors don&apos;t return values, they lack a return type.</li> <li>When we create a class object, the constructor is immediately invoked.</li> <li>Overloaded constructors are possible.</li> <li>Declaring a constructor virtual is not permitted.</li> <li>One cannot inherit a constructor.</li> <li>Constructor addresses cannot be referenced to.</li> <li>When allocating memory, the constructor makes implicit calls to the new and delete operators.</li> </ol> <h2>What is a copy constructor?</h2> <p>A member function known as a copy constructor initializes an item using another object from the same class-an in-depth discussion on Copy Constructors.</p> <p>Every time we specify one or more non-default constructors (with parameters) for a class, we also need to include a default constructor (without parameters), as the compiler won&apos;t supply one in this circumstance. The best practice is to always declare a default constructor, even though it is not required.</p> <p>A reference to an object belonging to the same class is required by the copy constructor.</p> <pre> Sample(Sample &amp;t) { id=t.id; } </pre> <h2>What is a destructor in C++?</h2> <p>An equivalent special member function to a constructor is a destructor. The constructor creates class objects, which are destroyed by the destructor. The word &apos;destructor,&apos; followed by the tilde () symbol, is the same as the class name. You can only define one destructor at a time. One method of destroying an object made by a constructor is to use a destructor. Destructors cannot be overloaded as a result. Destructors don&apos;t take any arguments and don&apos;t give anything back. As soon as the item leaves the scope, it is immediately called. Destructors free up the memory used by the objects the constructor generated. Destructor reverses the process of creating things by destroying them.</p> <p>The language used to define the class&apos;s destructor</p> <pre> ~ () { } </pre> <p>The language used to define the class&apos;s destructor outside of it</p> <pre> : : ~ (){} </pre> <hr></id<<'></pre></'default>

C++-parametrisierter Konstruktor

Ein Konstruktor, der Parameter hat, wird parametrisierter Konstruktor genannt. Es wird verwendet, um verschiedenen Objekten unterschiedliche Werte bereitzustellen.

Sehen wir uns das einfache Beispiel des C++-parametrisierten Konstruktors an.

 #include using namespace std; class Employee { public: int id;//data member (also instance variable) string name;//data member(also instance variable) float salary; Employee(int i, string n, float s) { id = i; name = n; salary = s; } void display() { cout&lt; <id<<\' \'<<name<<\' \'<<salary<<endl; } }; int main(void) { employee e1="Employee(101," \'sonoo\', 890000); creating an object of e2="Employee(102," \'nakul\', 59000); e1.display(); e2.display(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre>101 Sonoo 890000 102 Nakul 59000 </pre> <h2>What distinguishes constructors from a typical member function?</h2> <ol class="points"> <li>Constructor&apos;s name is the same as the class&apos;s</li> <li>Default There isn&apos;t an input argument for constructors. However, input arguments are available for copy and parameterized constructors.</li> <li>There is no return type for constructors.</li> <li>An object&apos;s constructor is invoked automatically upon creation.</li> <li>It must be shown in the classroom&apos;s open area.</li> <li>The C++ compiler creates a default constructor for the object if a constructor is not specified (expects any parameters and has an empty body).</li> </ol> <p>By using a practical example, let&apos;s learn about the various constructor types in C++. Imagine you visited a store to purchase a marker. What are your alternatives if you want to buy a marker? For the first one, you ask a store to give you a marker, given that you didn&apos;t specify the brand name or colour of the marker you wanted, simply asking for one amount to a request. So, when we just said, &apos;I just need a marker,&apos; he would hand us whatever the most popular marker was in the market or his store. The default constructor is exactly what it sounds like! The second approach is to go into a store and specify that you want a red marker of the XYZ brand. He will give you that marker since you have brought up the subject. The parameters have been set in this instance thus. And a parameterized constructor is exactly what it sounds like! The third one requires you to visit a store and declare that you want a marker that looks like this (a physical marker on your hand). The shopkeeper will thus notice that marker. He will provide you with a new marker when you say all right. Therefore, make a copy of that marker. And that is what a copy constructor does!</p> <h2>What are the characteristics of a constructor?</h2> <ol class="points"> <li>The constructor has the same name as the class it belongs to.</li> <li>Although it is possible, constructors are typically declared in the class&apos;s public section. However, this is not a must.</li> <li>Because constructors don&apos;t return values, they lack a return type.</li> <li>When we create a class object, the constructor is immediately invoked.</li> <li>Overloaded constructors are possible.</li> <li>Declaring a constructor virtual is not permitted.</li> <li>One cannot inherit a constructor.</li> <li>Constructor addresses cannot be referenced to.</li> <li>When allocating memory, the constructor makes implicit calls to the new and delete operators.</li> </ol> <h2>What is a copy constructor?</h2> <p>A member function known as a copy constructor initializes an item using another object from the same class-an in-depth discussion on Copy Constructors.</p> <p>Every time we specify one or more non-default constructors (with parameters) for a class, we also need to include a default constructor (without parameters), as the compiler won&apos;t supply one in this circumstance. The best practice is to always declare a default constructor, even though it is not required.</p> <p>A reference to an object belonging to the same class is required by the copy constructor.</p> <pre> Sample(Sample &amp;t) { id=t.id; } </pre> <h2>What is a destructor in C++?</h2> <p>An equivalent special member function to a constructor is a destructor. The constructor creates class objects, which are destroyed by the destructor. The word &apos;destructor,&apos; followed by the tilde () symbol, is the same as the class name. You can only define one destructor at a time. One method of destroying an object made by a constructor is to use a destructor. Destructors cannot be overloaded as a result. Destructors don&apos;t take any arguments and don&apos;t give anything back. As soon as the item leaves the scope, it is immediately called. Destructors free up the memory used by the objects the constructor generated. Destructor reverses the process of creating things by destroying them.</p> <p>The language used to define the class&apos;s destructor</p> <pre> ~ () { } </pre> <p>The language used to define the class&apos;s destructor outside of it</p> <pre> : : ~ (){} </pre> <hr></id<<\'>

Was unterscheidet Konstruktoren von einer typischen Member-Funktion?

  1. Der Name des Konstruktors ist derselbe wie der der Klasse
  2. Standard: Es gibt kein Eingabeargument für Konstruktoren. Allerdings sind Eingabeargumente für Kopier- und parametrisierte Konstruktoren verfügbar.
  3. Für Konstruktoren gibt es keinen Rückgabetyp.
  4. Der Konstruktor eines Objekts wird bei der Erstellung automatisch aufgerufen.
  5. Es muss im offenen Bereich des Klassenzimmers gezeigt werden.
  6. Der C++-Compiler erstellt einen Standardkonstruktor für das Objekt, wenn kein Konstruktor angegeben ist (erwartet alle Parameter und hat einen leeren Körper).

Lassen Sie uns anhand eines praktischen Beispiels die verschiedenen Konstruktortypen in C++ kennenlernen. Stellen Sie sich vor, Sie gehen in ein Geschäft, um einen Marker zu kaufen. Welche Alternativen haben Sie, wenn Sie einen Marker kaufen möchten? Im ersten Fall bitten Sie ein Geschäft darum, Ihnen einen Marker zu geben, vorausgesetzt, Sie haben weder den Markennamen noch die Farbe des gewünschten Markers angegeben, sondern lediglich eine Menge auf Anfrage verlangt. Als wir also einfach sagten: „Ich brauche nur einen Marker“, gab er uns den beliebtesten Marker, den es auf dem Markt oder in seinem Geschäft gab. Der Standardkonstruktor ist genau das, wonach er klingt! Der zweite Ansatz besteht darin, in ein Geschäft zu gehen und anzugeben, dass Sie einen roten Marker der Marke XYZ wünschen. Er wird Ihnen diesen Marker geben, da Sie das Thema angesprochen haben. Die Parameter wurden in diesem Fall so eingestellt. Und ein parametrisierter Konstruktor ist genau das, wonach es sich anhört! Bei der dritten Möglichkeit müssen Sie ein Geschäft besuchen und erklären, dass Sie einen Marker wünschen, der so aussieht (einen physischen Marker auf Ihrer Hand). Der Ladenbesitzer wird diese Markierung daher bemerken. Er wird Ihnen einen neuen Marker geben, wenn Sie alles in Ordnung sagen. Erstellen Sie daher eine Kopie dieses Markers. Und genau das macht ein Kopierkonstruktor!

Was sind die Merkmale eines Konstrukteurs?

  1. Der Konstruktor hat denselben Namen wie die Klasse, zu der er gehört.
  2. Obwohl es möglich ist, werden Konstruktoren normalerweise im öffentlichen Abschnitt der Klasse deklariert. Dies ist jedoch kein Muss.
  3. Da Konstruktoren keine Werte zurückgeben, fehlt ihnen ein Rückgabetyp.
  4. Wenn wir ein Klassenobjekt erstellen, wird der Konstruktor sofort aufgerufen.
  5. Überladene Konstruktoren sind möglich.
  6. Die Deklaration eines Konstruktors als virtuell ist nicht zulässig.
  7. Man kann einen Konstruktor nicht erben.
  8. Auf Konstruktoradressen kann nicht verwiesen werden.
  9. Beim Zuweisen von Speicher ruft der Konstruktor implizit die Operatoren new und delete auf.

Was ist ein Kopierkonstruktor?

Eine als Kopierkonstruktor bekannte Mitgliedsfunktion initialisiert ein Element mithilfe eines anderen Objekts derselben Klasse – eine ausführliche Diskussion über Kopierkonstruktoren.

Jedes Mal, wenn wir einen oder mehrere nicht standardmäßige Konstruktoren (mit Parametern) für eine Klasse angeben, müssen wir auch einen Standardkonstruktor (ohne Parameter) einschließen, da der Compiler in diesem Fall keinen bereitstellt. Die beste Vorgehensweise besteht darin, immer einen Standardkonstruktor zu deklarieren, auch wenn dies nicht erforderlich ist.

Der Kopierkonstruktor benötigt einen Verweis auf ein Objekt, das zur gleichen Klasse gehört.

Java mit MySQL verbinden
 Sample(Sample &amp;t) { id=t.id; } 

Was ist ein Destruktor in C++?

Eine äquivalente spezielle Mitgliedsfunktion zu einem Konstruktor ist ein Destruktor. Der Konstruktor erstellt Klassenobjekte, die vom Destruktor zerstört werden. Das Wort „Destruktor“, gefolgt vom Tilde-Symbol (), ist dasselbe wie der Klassenname. Sie können jeweils nur einen Destruktor definieren. Eine Methode zum Zerstören eines von einem Konstruktor erstellten Objekts ist die Verwendung eines Destruktors. Dadurch können Destruktoren nicht überladen werden. Destruktoren akzeptieren keine Argumente und geben nichts zurück. Sobald das Element den Gültigkeitsbereich verlässt, wird es sofort aufgerufen. Destruktoren geben den Speicher frei, der von den Objekten verwendet wird, die der Konstruktor generiert hat. Der Destruktor kehrt den Prozess der Erschaffung von Dingen um, indem er sie zerstört.

Die Sprache, die zum Definieren des Destruktors der Klasse verwendet wird

 ~ () { } 

Die Sprache, die verwendet wird, um den Destruktor der Klasse außerhalb der Klasse zu definieren

 : : ~ (){}