Sissejuhatus C ++ konstruktorisse ja hävitajasse
- C ++ konstruktoril ja hävitajal on oluline roll objektorienteeritud programmeerimiskeeles nagu C ++. Kuna meil on klass ja selle objektid C ++ -s uue objekti loomisel iga kord objekti ehitajaks, saab objekti initsialiseerimiseks kasutada konstruktorit, kuid kui objekt hävitab objekti, saab hävitajat kasutada vajalike postitoimingute tegemiseks.
- Kui loome klassi objekti C ++-s, võiksime klassiväljad lähtestada mõne vaikimisi või kindla väärtusega. Klassil on oma väljad ja meetodid. Väljad on enamasti muutujad või objektid. Nendele väljadele vaikimisi väärtusi määrates muudame meie programmeerimise lihtsaks. Konstruktor on klassis nagu tavaline funktsioon ja kompilaator kutsub selle automaatselt, kui loome selle klassi uue objekti. Objekti loomisel edastame objektile argumendina nõutavad väärtused, need argumendid edastatakse klassi konstruktorile. Argumendi väärtused saab nüüd omistada vastavatele väljadele, mis on klassis saadaval. Lisaks saame väljadele, millele me argumente ei edasta, määrata vaikimisi väärtusi. Seal on erinevaid tüüpe ja viise, mille abil lähtestame konstruktori C ++ -sse.
- Ehitaja on nagu klassi eriliikmete funktsioon. Kui loome uue objekti, siis ehitaja käivitatakse. Konstruktori süntaks on väga lihtne, funktsioonil on sama nimi, mis klassil, milles see on määratletud, ja sellel pole mingit tagastamise tüüpi ega isegi tühist. Ehitajad on väga kasulikud teatud klassi liikmetele teatud väärtuste määramisel. Konstruktorit saab kasutada klassiga seotud loogika teostamiseks hetkega.
Konstruktori süntaks
class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)
C ++ hävitaja on klassis ka eriliikme funktsioon. Hävitaja kutsub kompilaator automaatselt hävitaja ja see käivitatakse alati, kui selle konkreetse klassi objekt väljub ulatusest või kui see kustutatakse, kasutades kustutamise avaldust selle objekti osuti. Kui kompilaator hävitab objekti, kutsutakse hävitaja. Hävitajas võime täita avaldusi, mis võivad olla kõik, mida tahame täita, kui objekt väljub ulatusest. Järeltoimingud, nagu ühenduste sulgemine, failide sulgemine jne, on mõned näited, mida saame hävitajas teostada.
Hävitaja süntaks
class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)
Hävitaja süntaks on väga sarnane konstruktoriga. Sellel on sama nimi, mis klassil, milles see on määratletud, ja sellel pole tagastamise tüüpi. Kuid sellel on hävitaja nime ees ~ (tilde) märk. Tavaliselt kasutatakse hävitajat klassi ja selle liikmete dünaamiliselt eraldatud mälu määramiseks. Hävitajad on väga kasulikud postitoimingute tegemiseks, mida saab teha pärast äriloogikat.
Miks on meil C ++-s vaja konstruktorit ja hävitajat?
C ++ on objektorienteeritud programmeerimiskeel. Mis tahes objektorienteeritud programmeerimiskeeles kaardistame klassi ja objektide abil originaalsed reaalajas olendid.
Saame aru, miks meil on reaalajas näitel vaja C ++ konstruktorit ja destruktorit. Oletame, et meil on entiteet Box ja oleme selle jaoks klassi loonud ning sellel on objekte, mida saab kasutada ka teistes osades. Nüüd on boksil teatud parameetrid, nagu kõrgus, pikkus, laius jne. Kui me loome klassi Boxi objekti, tahame, et see võtaks vaikeväärtuse. Ütleme, et kõrguse jaoks saab selle eesmärgi saavutada, kui omistatakse selle klassi konstruktoris kõrgusele konkreetne vaikeväärtus. Sarnaselt saab teistele parameetritele anda ka väärtusi. Pärast kasti objekti kasutamist ütleme, et soovime kohe mõnda konkreetset toimingut või helistame mõnele funktsioonile. Seda saab teha, kasutades C ++ -s Destructorit. Nõutavad avaldused lisatakse selle klassi hävitajale. Need on reaalajas saadavad eelised, kui C ++-is on konstruktor ja destruktor.
Kuidas C ++ töötavad konstruktorid ja hävitajad?
Nagu varem arutletud, saab kompilaator ehitaja helistamise, kui objekt luuakse. Kui me ei defineeri konstruktorit, genereerib C ++ kompilaator meile automaatselt vaikekonstruktori. Konstruktorit kasutatakse vajaduse korral mälu eraldamiseks ja klassiobjekti konstrueerimiseks, kusjuures objekti hävitamisel kasutatakse hävitajat hävitaja abil. Kui objekt hävitatakse, kutsub kompilaator hävitaja automaatselt. Kui me ei määratle oma hävitajat, loob C ++ kompilaator vaikimisi hävitaja.
Kas luua konstruktor ja hävitaja rakenduses C ++? (Näited)
1. Konstruktori näide
Võtame sama näite klassi Boxist, et kuulutada konstruktoriks. Määrame kasti kõrgusele ja kaalule mõned vaikeväärtused.
Kood
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)
Seega, kui selle klassi objekt luuakse, tagastab see tüüpi Box objekti vaikimisi väärtustega, nagu eespool määratletud.
2. Hävitaja näide
Kui Boxi objekt jääb ulatusest välja, prindime oma näites mõne teksti konsoolile. Tegelikult võib kodeerimisel olla mis tahes konkreetne toiming.
Kood
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
//destructor
~Box () (
// post statements
cout << “Box Object is being deleted.” << endl;
)
)
Seega prindib kompilaator iga kord, kui ülalpool defineeritud tekst, konsoolil välja, kui kasti objekt välja jääb.
Järeldus
Objektorienteeritud programmeerimiskeeles mängivad olulist rolli ka konstruktor ja hävitaja. Objekti initsialiseerimiseks kasutatakse konstruktorit ja objekti hävitamiseks hävitajat. Nii konstruktor kui ka destruktor on C ++ keeles programmeerimisel väga kasulikud.
Soovitatavad artiklid
See on juhend konstruktorile ja hävitajale rakenduses C ++. Siin käsitleme konstruktori ja hävitaja vajadusi C ++-s, kuidas kasutada, erinevaid süntaksit ja näiteid. Lisateavet leiate ka meie muudest seotud artiklitest -
- C ++ massiivi funktsioonid
- Kopeeri konstruktor C ++-s
- C ++ sissejuhatus
- C konstruktori tüübid
- Juhend hävitajale C # -s
- Hävitaja PHP-s koos näidetega