logo

C++ konstruktør

I C++ er konstruktør en spesiell metode som påkalles automatisk på tidspunktet for objektoppretting. Den brukes til å initialisere datamedlemmene til et nytt objekt generelt. Konstruktøren i C++ har samme navn som klasse eller struktur.

Kort fortalt kalles en bestemt prosedyre kalt en konstruktør automatisk når et objekt opprettes i C++. Generelt brukes den til å skape datamedlemmer til nye ting. I C++ fungerer klasse- eller strukturnavnet også som konstruktørnavn. Når et objekt er fullført, kalles konstruktøren. Fordi det skaper verdiene eller gir data for tingen, er det kjent som en konstruktør.

Constructors-prototypen ser slik ut:

 (list-of-parameters); 

Følgende syntaks brukes til å definere klassens konstruktør:

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

Følgende syntaks brukes til å definere en konstruktør utenfor en klasse:

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

Konstruktører mangler en returtype siden de ikke har en returverdi.

Det kan være to typer konstruktører i C++.

  • Standard konstruktør
  • Parameterisert konstruktør

C++ Standard konstruktør

En konstruktør som ikke har noe argument er kjent som standard konstruktør. Det påkalles når objektet opprettes.

La oss se det enkle eksemplet på C++ standard Constructor.

 #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++ Parameterisert konstruktør

En konstruktør som har parametere kalles parameterisert konstruktør. Den brukes til å gi forskjellige verdier til forskjellige objekter.

La oss se det enkle eksemplet på C++ Parameterized Constructor.

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

Hva skiller konstruktører fra en typisk medlemsfunksjon?

  1. Konstruktørens navn er det samme som klassens
  2. Standard Det er ikke et input-argument for konstruktører. Imidlertid er input-argumenter tilgjengelige for kopi- og parameteriserte konstruktører.
  3. Det er ingen returtype for konstruktører.
  4. Et objekts konstruktør påkalles automatisk ved opprettelse.
  5. Det skal vises i klasserommets åpne område.
  6. C++-kompilatoren oppretter en standardkonstruktør for objektet hvis en konstruktør ikke er spesifisert (forventer noen parametere og har en tom kropp).

Ved å bruke et praktisk eksempel, la oss lære om de forskjellige konstruktørtypene i C++. Tenk deg at du besøkte en butikk for å kjøpe en markør. Hva er alternativene dine hvis du ønsker å kjøpe en tusj? For den første ber du en butikk om å gi deg en markør, gitt at du ikke spesifiserte merkenavnet eller fargen på markøren du ønsket, bare ber om ett beløp til en forespørsel. Så når vi bare sa: 'Jeg trenger bare en tusj', ga han oss det mest populære merket som var på markedet eller i butikken hans. Standardkonstruktøren er akkurat slik den høres ut! Den andre tilnærmingen er å gå inn i en butikk og spesifisere at du vil ha en rød markør av XYZ-merket. Han vil gi deg den markøren siden du har tatt opp emnet. Parametrene er satt i dette tilfellet på denne måten. Og en parameterisert konstruktør er akkurat hva det høres ut som! Den tredje krever at du besøker en butikk og erklærer at du vil ha en markør som ser slik ut (en fysisk markør på hånden). Butikkeieren vil dermed legge merke til den markøren. Han vil gi deg en ny markør når du sier greit. Lag derfor en kopi av den markøren. Og det er det en kopikonstruktør gjør!

Hva kjennetegner en konstruktør?

  1. Konstruktøren har samme navn som klassen den tilhører.
  2. Selv om det er mulig, er konstruktører vanligvis deklarert i klassens offentlige del. Dette er imidlertid ikke et must.
  3. Fordi konstruktører ikke returnerer verdier, mangler de en returtype.
  4. Når vi lager et klasseobjekt, startes konstruktøren umiddelbart.
  5. Overbelastede konstruktører er mulig.
  6. Det er ikke tillatt å erklære en virtuell konstruktør.
  7. Man kan ikke arve en konstruktør.
  8. Entreprenøradresser kan ikke refereres til.
  9. Ved tildeling av minne foretar konstruktøren implisitte anrop til de nye og slette operatørene.

Hva er en kopikonstruktør?

En medlemsfunksjon kjent som en kopikonstruktør initialiserer et element ved å bruke et annet objekt fra samme klasse - en dybdediskusjon om Copy Constructors.

Hver gang vi spesifiserer en eller flere ikke-standard konstruktører (med parametere) for en klasse, må vi også inkludere en standard konstruktør (uten parametere), siden kompilatoren ikke vil levere en i denne omstendigheten. Den beste praksisen er å alltid erklære en standardkonstruktør, selv om det ikke er nødvendig.

En referanse til et objekt som tilhører samme klasse kreves av kopikonstruktøren.

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

Hva er en destruktor i C++?

En tilsvarende spesialmedlemsfunksjon til en konstruktør er en destruktor. Konstruktøren lager klasseobjekter, som blir ødelagt av destruktoren. Ordet 'destruktor' etterfulgt av tilde ()-symbolet er det samme som klassenavnet. Du kan bare definere én destruktor om gangen. En metode for å ødelegge et objekt laget av en konstruktør er å bruke en destruktor. Destruktorer kan ikke overbelastes som et resultat. Destruktorer tar ingen argumenter og gir ikke noe tilbake. Så snart varen forlater omfanget, blir den umiddelbart oppringt. Destruktorer frigjør minnet som brukes av objektene konstruktøren genererte. Destructor reverserer prosessen med å skape ting ved å ødelegge dem.

Språket som brukes til å definere klassens destruktor

 ~ () { } 

Språket som brukes til å definere klassens destruktor utenfor den

 : : ~ (){}