logo

C++ konštruktor

V C++ je konštruktor špeciálna metóda, ktorá sa vyvoláva automaticky v čase vytvárania objektu. Vo všeobecnosti sa používa na inicializáciu dátových členov nového objektu. Konštruktor v C++ má rovnaký názov ako trieda alebo štruktúra.

Stručne povedané, konkrétna procedúra nazývaná konštruktor sa volá automaticky, keď je objekt vytvorený v C++. Vo všeobecnosti sa používa na vytváranie údajových členov nových vecí. V C++ názov triedy alebo štruktúry slúži aj ako názov konštruktora. Po dokončení objektu sa zavolá konštruktor. Pretože vytvára hodnoty alebo poskytuje údaje pre vec, je známy ako konštruktor.

program v jave

Prototyp Constructors vyzerá takto:

 (list-of-parameters); 

Nasledujúca syntax sa používa na definovanie konštruktora triedy:

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

Nasledujúca syntax sa používa na definovanie konštruktora mimo triedy:

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

Konštruktérom chýba návratový typ, pretože nemajú návratovú hodnotu.

súbor .tif

V C++ môžu existovať dva typy konštruktorov.

  • Predvolený konštruktor
  • Parametrizovaný konštruktor

Predvolený konštruktor C++

Konštruktor, ktorý nemá žiadny argument, je známy ako predvolený konštruktor. Vyvoláva sa v čase vytvárania objektu.

Pozrime sa na jednoduchý príklad predvoleného konštruktora C++.

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

Parametrizovaný konštruktor C++

Konštruktor, ktorý má parametre, sa nazýva parametrizovaný konštruktor. Používa sa na poskytovanie rôznych hodnôt rôznym objektom.

rozbalenie v linuxe

Pozrime sa na jednoduchý príklad parametrizovaného konštruktora C++.

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

Čo odlišuje konštruktory od typickej členskej funkcie?

  1. Meno konštruktora je rovnaké ako meno triedy
  2. Predvolené Pre konštruktory neexistuje vstupný argument. Vstupné argumenty sú však dostupné pre kopírovacie a parametrizované konštruktory.
  3. Pre konštruktory neexistuje návratový typ.
  4. Konštruktor objektu sa vyvolá automaticky pri vytvorení.
  5. Musí sa ukázať na otvorenom priestranstve v triede.
  6. Kompilátor C++ vytvorí predvolený konštruktor pre objekt, ak konštruktor nie je špecifikovaný (očakáva akékoľvek parametre a má prázdne telo).

Pomocou praktického príkladu sa dozvieme o rôznych typoch konštruktorov v C++. Predstavte si, že ste navštívili obchod, aby ste si kúpili značku. Aké sú vaše alternatívy, ak si chcete kúpiť fixku? V prvom prípade požiadate obchod, aby vám dal fixku, keďže ste nešpecifikovali názov značky alebo farbu fixky, ktorú ste chceli, jednoducho si vyžiadate jednu sumu na žiadosť. Takže, keď sme len povedali: „Potrebujem iba fixku,“ podal nám čokoľvek, čo bolo na trhu alebo v jeho obchode najobľúbenejšie. Predvolený konštruktor je presne taký, ako to znie! Druhý prístup je ísť do obchodu a určiť, že chcete červenú fixku značky XYZ. Dá vám túto značku, pretože ste túto tému otvorili. Parametre boli v tomto prípade nastavené takto. A parametrizovaný konštruktor je presne to, ako to znie! Tretia vyžaduje, aby ste navštívili obchod a vyhlásili, že chcete značku, ktorá vyzerá takto (fyzická značka na vašej ruke). Obchodník si tak všimne túto značku. Keď poviete všetko dobre, poskytne vám novú značku. Preto si urobte kópiu tejto značky. A to je to, čo robí konštruktor kópií!

Aké sú vlastnosti konštruktéra?

  1. Konštruktor má rovnaký názov ako trieda, do ktorej patrí.
  2. Hoci je to možné, konštruktory sú zvyčajne deklarované vo verejnej časti triedy. Nie je to však nevyhnutné.
  3. Pretože konštruktory nevracajú hodnoty, chýba im návratový typ.
  4. Keď vytvoríme objekt triedy, okamžite sa vyvolá konštruktor.
  5. Možné sú preťažené konštruktéry.
  6. Vyhlásenie konštruktora za virtuálneho nie je povolené.
  7. Konštruktor nemôže zdediť.
  8. Na adresy konštruktorov nemožno odkazovať.
  9. Pri prideľovaní pamäte konštruktor implicitne volá operátory new a delete.

Čo je to kopírovací konštruktor?

Členská funkcia známa ako konštruktor kopírovania inicializuje položku pomocou iného objektu z rovnakej triedy – hĺbková diskusia o konštruktoroch kopírovania.

Zakaždým, keď špecifikujeme jeden alebo viac neštandardných konštruktorov (s parametrami) pre triedu, musíme tiež zahrnúť predvolený konštruktor (bez parametrov), pretože kompilátor v tomto prípade žiadny nedodá. Najlepšou praxou je vždy deklarovať predvolený konštruktor, aj keď sa to nevyžaduje.

Konštruktor kópie vyžaduje odkaz na objekt patriaci do rovnakej triedy.

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

Čo je deštruktor v C++?

Ekvivalentná špeciálna členská funkcia ku konštruktoru je deštruktor. Konštruktor vytvára objekty triedy, ktoré sú zničené deštruktorom. Slovo „deštruktor“, za ktorým nasleduje symbol vlnovky (), je rovnaké ako názov triedy. Naraz môžete definovať iba jeden deštruktor. Jednou z metód zničenia objektu vytvoreného konštruktorom je použitie deštruktora. V dôsledku toho nemôžu byť deštruktory preťažené. Deštruktori neberú žiadne argumenty a nič nevracajú. Akonáhle položka opustí rozsah, je okamžite volaná. Deštruktory uvoľňujú pamäť využívanú objektmi, ktoré konštruktor vygeneroval. Destructor obráti proces vytvárania vecí tým, že ich zničí.

porovnať reťazec java

Jazyk používaný na definovanie deštruktora triedy

 ~ () { } 

Jazyk používaný na definovanie deštruktora triedy mimo nej

 : : ~ (){}