Mikä on Luokan Konstruktori
Konstruktori on luokan erityinen metodi, jota kutsutaan, kun olio luodaan. Sen avulla voidaan alustaa attribuutit mielekkäisiin arvoihin.
Konstruktoreiden avulla olioiden luominen voidaan yksinkertaistaa. Ilman konstruktoria jokainen ominaisuus täytyisi asettaa erikseen, ja saatettaisiin joutua kutsumaan useita metodeja, jotta olio saadaan käyttökelpoiseen tilaan.
Konstruktorin ensisijainen tarkoitus on alustaa juuri luotu instanssi. Se voi asettaa attribuuttien alkuarvot konstruktorille annettujen parametrien perusteella, varmistaen, että olio alkaa kelvollisessa tilassa.
Konstruktorin syntaksi
Vaikka konstruktorin kehittäminen saattaa vaikuttaa yksinkertaiselta, siihen liittyy useita erityisiä huomioita. Yleinen lähestymistapa konstruktorin luomiseen on seuraava:
student.h
12345678class Student { public: Student() { name = 'Default'; } std::string name; };
- Nimi: konstruktorilla on sama nimi kuin luokalla;
- Palautustyyppi: konstruktoreilla ei ole palautustyyppiä, ei edes
void; - Parametrit: konstruktorit voivat ottaa parametreja ja niitä voidaan ylikuormittaa eri parametrikokonaisuuksilla, mikä mahdollistaa olioiden alustamisen eri tavoilla;
- Automaattinen kutsu: konstruktori kutsutaan automaattisesti kääntäjän toimesta, kun olio luodaan.
Oletuskonstruktori
Oletuskonstruktori on konstruktori, joka voidaan kutsua ilman argumentteja. Alla on esimerkki oletuskonstruktoreiden määrittelystä ja käytöstä:
main.cpp
1234567891011121314#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }
Voit kokeilla yllä olevaa koodia. Example()-menetelmässä kirjoitettu logiikka suoritetaan joka kerta, kun luokan olio luodaan.
Kokeile lisätä yksi olio lisää tai muuta logiikkaa konstruktorissa.
Jos konstruktoria ei ole määritelty, kääntäjä luo oletuskonstruktorin. Sen toiminta riippuu jäsenmuuttujien tyypeistä: perusmuuttujatyypit, oletusrakennettavat tyypit tai käyttäjän määrittelemät tyypit.
main.cpp
123456789101112#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }
Attribuutti on perusmuuttujatyyppi. Automaattisesti luotu oletuskonstruktori ei alustaa sisäänrakennettujen tyyppien jäsenmuuttujia. Näillä muuttujilla on määrittelemättömät arvot, jos luot olion etkä erikseen alusta näitä kenttiä.
Saatat huomata, että kääntäjä antaa value-muuttujalle johdonmukaisen arvon, mutta standardi ei vaadi tätä ja on mahdollista, että muuttuja sisältää satunnaisen arvon.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain what happens if I define my own constructor?
What is the difference between a default constructor and a parameterized constructor?
Can you show an example of a class with a default constructor?
Mahtavaa!
Completion arvosana parantunut arvoon 3.13
Mikä on Luokan Konstruktori
Pyyhkäise näyttääksesi valikon
Konstruktori on luokan erityinen metodi, jota kutsutaan, kun olio luodaan. Sen avulla voidaan alustaa attribuutit mielekkäisiin arvoihin.
Konstruktoreiden avulla olioiden luominen voidaan yksinkertaistaa. Ilman konstruktoria jokainen ominaisuus täytyisi asettaa erikseen, ja saatettaisiin joutua kutsumaan useita metodeja, jotta olio saadaan käyttökelpoiseen tilaan.
Konstruktorin ensisijainen tarkoitus on alustaa juuri luotu instanssi. Se voi asettaa attribuuttien alkuarvot konstruktorille annettujen parametrien perusteella, varmistaen, että olio alkaa kelvollisessa tilassa.
Konstruktorin syntaksi
Vaikka konstruktorin kehittäminen saattaa vaikuttaa yksinkertaiselta, siihen liittyy useita erityisiä huomioita. Yleinen lähestymistapa konstruktorin luomiseen on seuraava:
student.h
12345678class Student { public: Student() { name = 'Default'; } std::string name; };
- Nimi: konstruktorilla on sama nimi kuin luokalla;
- Palautustyyppi: konstruktoreilla ei ole palautustyyppiä, ei edes
void; - Parametrit: konstruktorit voivat ottaa parametreja ja niitä voidaan ylikuormittaa eri parametrikokonaisuuksilla, mikä mahdollistaa olioiden alustamisen eri tavoilla;
- Automaattinen kutsu: konstruktori kutsutaan automaattisesti kääntäjän toimesta, kun olio luodaan.
Oletuskonstruktori
Oletuskonstruktori on konstruktori, joka voidaan kutsua ilman argumentteja. Alla on esimerkki oletuskonstruktoreiden määrittelystä ja käytöstä:
main.cpp
1234567891011121314#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }
Voit kokeilla yllä olevaa koodia. Example()-menetelmässä kirjoitettu logiikka suoritetaan joka kerta, kun luokan olio luodaan.
Kokeile lisätä yksi olio lisää tai muuta logiikkaa konstruktorissa.
Jos konstruktoria ei ole määritelty, kääntäjä luo oletuskonstruktorin. Sen toiminta riippuu jäsenmuuttujien tyypeistä: perusmuuttujatyypit, oletusrakennettavat tyypit tai käyttäjän määrittelemät tyypit.
main.cpp
123456789101112#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }
Attribuutti on perusmuuttujatyyppi. Automaattisesti luotu oletuskonstruktori ei alustaa sisäänrakennettujen tyyppien jäsenmuuttujia. Näillä muuttujilla on määrittelemättömät arvot, jos luot olion etkä erikseen alusta näitä kenttiä.
Saatat huomata, että kääntäjä antaa value-muuttujalle johdonmukaisen arvon, mutta standardi ei vaadi tätä ja on mahdollista, että muuttuja sisältää satunnaisen arvon.
Kiitos palautteestasi!