logo

C++-constructeur

In C++ is constructor een speciale methode die automatisch wordt aangeroepen op het moment dat het object wordt gemaakt. Het wordt in het algemeen gebruikt om de gegevensleden van een nieuw object te initialiseren. De constructor in C++ heeft dezelfde naam als klasse of structuur.

Kort gezegd wordt een bepaalde procedure, een constructor genaamd, automatisch aangeroepen wanneer een object in C++ wordt gemaakt. Over het algemeen wordt het gebruikt om de gegevensleden van nieuwe dingen te creëren. In C++ dient de klasse- of structuurnaam ook als constructornaam. Wanneer een object voltooid is, wordt de constructor aangeroepen. Omdat het de waarden creëert of gegevens voor het ding geeft, staat het bekend als een constructor.

Het Constructors-prototype ziet er als volgt uit:

lineair zoeken in Java
 (list-of-parameters); 

De volgende syntaxis wordt gebruikt om de constructor van de klasse te definiëren:

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

De volgende syntaxis wordt gebruikt om een ​​constructor buiten een klasse te definiëren:

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

Constructors hebben geen retourtype omdat ze geen retourwaarde hebben.

Er kunnen twee soorten constructors zijn in C++.

  • Standaardconstructor
  • Geparametriseerde constructor

C++ standaardconstructor

Een constructor die geen argument heeft, wordt de standaardconstructor genoemd. Het wordt aangeroepen op het moment dat het object wordt gemaakt.

Laten we het eenvoudige voorbeeld van de standaardconstructor in C++ bekijken.

 #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++ geparametriseerde constructor

Een constructor die parameters heeft, wordt een geparametriseerde constructor genoemd. Het wordt gebruikt om verschillende waarden aan verschillende objecten te geven.

Laten we het eenvoudige voorbeeld van C++ Geparametriseerde Constructor bekijken.

 #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<<\'>

Wat onderscheidt constructors van een typische lidfunctie?

  1. De naam van de constructeur is dezelfde als die van de klasse
  2. Standaard Er is geen invoerargument voor constructors. Er zijn echter invoerargumenten beschikbaar voor kopieer- en geparametriseerde constructors.
  3. Er is geen retourtype voor constructors.
  4. De constructor van een object wordt automatisch aangeroepen bij het maken ervan.
  5. Het moet in de open ruimte van het klaslokaal worden getoond.
  6. De C++-compiler maakt een standaardconstructor voor het object als er geen constructor is opgegeven (verwacht alle parameters en heeft een lege body).

Laten we, aan de hand van een praktisch voorbeeld, meer leren over de verschillende constructortypen in C++. Stel je voor dat je een winkel bezoekt om een ​​stift te kopen. Wat zijn uw alternatieven als u een marker wilt kopen? Voor de eerste vraag je een winkel om je een marker te geven, aangezien je de merknaam of de kleur van de gewenste marker niet hebt opgegeven, en vraag je eenvoudigweg om één bedrag op een aanvraag. Dus toen we net zeiden: 'Ik heb gewoon een stift nodig', overhandigde hij ons de populairste stift op de markt of in zijn winkel. De standaardconstructor is precies hoe het klinkt! De tweede benadering is om naar een winkel te gaan en aan te geven dat je een rode marker van het merk XYZ wilt. Hij zal je die marker geven, aangezien je het onderwerp ter sprake hebt gebracht. De parameters zijn in dit geval aldus ingesteld. En een geparametriseerde constructor is precies hoe het klinkt! Voor de derde moet je een winkel bezoeken en aangeven dat je een marker wilt die er zo uitziet (een fysieke marker op je hand). De winkelier zal de markering dus opmerken. Hij zal je een nieuwe marker geven als je zegt dat het goed is. Maak daarom een ​​kopie van die markering. En dat is wat een copyconstructor doet!

wat is rom

Wat zijn de kenmerken van een constructeur?

  1. De constructor heeft dezelfde naam als de klasse waartoe hij behoort.
  2. Hoewel het mogelijk is, worden constructors doorgaans gedeclareerd in de openbare sectie van de klasse. Dit is echter geen must.
  3. Omdat constructors geen waarden retourneren, ontbreekt er een retourtype.
  4. Wanneer we een klasseobject maken, wordt de constructor onmiddellijk aangeroepen.
  5. Overbelaste constructors zijn mogelijk.
  6. Het declareren van een constructor virtueel is niet toegestaan.
  7. Je kunt een constructor niet erven.
  8. Er kan niet naar constructoradressen worden verwezen.
  9. Bij het toewijzen van geheugen voert de constructor impliciete oproepen uit naar de operatoren new en delete.

Wat is een kopieerconstructor?

Een lidfunctie die bekend staat als een copy-constructor initialiseert een item met een ander object uit dezelfde klasse - een diepgaande discussie over Copy Constructors.

Elke keer dat we een of meer niet-standaardconstructors (met parameters) voor een klasse specificeren, moeten we ook een standaardconstructor (zonder parameters) opnemen, omdat de compiler er in dit geval geen zal leveren. De beste praktijk is om altijd een standaardconstructor te declareren, ook al is dit niet vereist.

Een verwijzing naar een object dat tot dezelfde klasse behoort, is vereist door de kopieconstructor.

 Sample(Sample &amp;t) { id=t.id; } 

Wat is een destructor in C++?

Een equivalente speciale lidfunctie voor een constructor is een destructor. De constructor maakt klasseobjecten, die door de destructor worden vernietigd. Het woord 'destructor', gevolgd door het tilde ()-symbool, is hetzelfde als de klassenaam. Je kunt slechts één destructor tegelijk definiëren. Eén methode om een ​​object dat door een constructor is gemaakt te vernietigen, is door een destructor te gebruiken. Destructors kunnen daardoor niet overbelast raken. Destructors accepteren geen argumenten en geven niets terug. Zodra het item de scope verlaat, wordt het direct aangeroepen. Destructors maken het geheugen vrij dat wordt gebruikt door de objecten die de constructor heeft gegenereerd. Destructor keert het proces van het creëren van dingen om door ze te vernietigen.

De taal die wordt gebruikt om de destructor van de klasse te definiëren

 ~ () { } 

De taal die wordt gebruikt om de destructor van de klasse daarbuiten te definiëren

 : : ~ (){}