Mis on pärimiskonstruktor C++ keeles

Mis On Parimiskonstruktor C Keeles



C++ keeles, pärand on objektorienteeritud programmeerimise põhimõiste. Tuletatud klass võib tänu võimsatele pärida baasklassi tunnused ja käitumisviisid pärand võime C++ keeles. Tuletatud klass pärib moodustamisel kohe kõik baasklassi liikmed. Tuletatud klassikonstruktoril on vaja lähtestada ka baasklassi liikmed. C++ keeles, pärand on võimas funktsioon, mis võimaldab arendajatel koodi uuesti kasutada, tõhusust parandada ja koodi loogilistesse hierarhiatesse korraldada.

Lisaks pärimisele on C++-s olulised ka konstruktorid. A konstruktor on ainulaadne liikmefunktsioon, mis võimaldab teil objekti omadusi lähtestada. An Pärimise konstruktor on konstruktor, mida kasutatakse nii põhiklassi kui ka tuletatud klassi pärinud klassiobjektide lähtestamiseks. The pärandi konstruktor vastutab nii päritud baasklassi liikmete kui ka tuletatud klassiliikmete lähtestamise eest. Selle saavutamiseks kutsub konstruktor välja põhiklassi konstruktori, tagades, et kõik tuletatud klassi liikmed on õigesti initsialiseeritud, sealhulgas baasklassist päritud.

Kutsudes välja baasklassi konstruktori ja edastades sellele vajalikud parameetrid, pärandi konstruktor initsialiseerib baasklassi liikmed. See saavutatakse kasutades 'baasklass (argumendid)' lähtestamisloend konstruktoris. Täiendavad juhised tuletatud klassi kohta on esitatud konstruktori kehas.







Süntaks jaoks pärivad klass C++ keeles on:



klass TuletatudClass : accessSpecifier BaseClass {
// klassi liikmed
} ;

Sel juhul moodustatav uus klass, 'DerivedClass', pärib alates 'BaseClass'. Päritud liikmete juurdepääsu tase on määratud ' accessSpecifier”. C++ kasutab kolme tüüpi juurdepääsuspetsifikaatoreid, nimelt 'avalik', 'privaatne', ja 'kaitstud' . Sõna 'avalik' näitab, et tuletatud klassil on juurdepääs baasklassi avalikele liikmetele. Tuletatud klassil puudub juurdepääs baasklassi liikmetele, vastavalt 'privaatne' täpsustaja. Tuletatud klassil on juurdepääs kaitstud baasklassi liikmetele, mida nende alamklassid võivad pärida vastavalt 'kaitstud' täpsustaja.



Pärimise näide C++ keeles

Järgmine näide näitab selle rakendamist Pärand keeles C++:





#include
kasutades nimeruum std ;

klass Loom {
avalik :
tühine sööma ( ) {
cout << 'Ma võin süüa!' << endl ;
}
tühine magama ( ) {
cout << 'Ma saan magada!' << endl ;
}
} ;
klass Kass : avalik Loom {
avalik :
tühine Mjäu ( ) {
cout << 'Ma oskan mjäu!' << endl ;
}
} ;
int peamine ( ) {
Kass kass1 ;
kass1. sööma ( ) ;
kass1. magama ( ) ;
kass1. Mjäu ( ) ;

tagasi 0 ;
}

Antud kood määratleb kaks klassi, 'Loom' ja 'Kass' , kus 'Kass' on tuletatud 'Loom' . Mõlemal klassil on mõned liikmefunktsioonid, nt 'sööma', 'magama' ja 'Mjäu' . Põhifunktsioon loob klassi objekti 'Kass' ja helistab päritud funktsioonid klassist 'Loom' samuti klassi spetsiifiline funktsioon 'Kass' , mis on 'Mjäu' . Programm väljastab teksti konsooli, mis näitab, et kass saab süüa, magada ja mjäu.

Väljund



Klassi tuletamisel kantakse kõik põhiklassi liikmemuutujad ja liikmefunktsioonid üle tuletatud klassi. The päritud liikmete juurdepääsetavuse tuletatud klassis määrab juurdepääsu spetsifikaat. Tuletatud klass võib ka juba olemasolevaid uusi funktsioone asendada. See võib lisada põhiklassi meetodite jaoks uusi rakendusi ning lisada uusi liikmefunktsioone ja muutujaid.

Oluline on meeles pidada, et pärandi konstruktor tuleb kasutada põhiklassi konstruktori selgeks kutsumiseks vajalike parameetritega, kui baasklassil on vaikekonstruktor või kui see pole saadaval.

Järeldus

Tugev omadus pärand C++-s võimaldab klassidel koodi uuesti kasutada, pärides teistelt tunnuseid ja toiminguid. Kasulik C++ funktsioon pärandi konstruktor võimaldab tuletatud klassidel pärida baasklassi atribuute, meetodeid ja andmeliikmeid. Põhiklassi konstruktorite lähtestamisloendi lisamisega määratletakse see standardkonstruktoriga sama süntaksi abil. C++ programmeerijad saavad koodi dubleerimist minimeerida ja koodistruktuuri täiustada, kasutades pärandi konstruktor . See on oluline tööriist keerukate klassihierarhiate loomiseks objektorienteeritud programmeerimises.