Co je konstruktor dědičnosti v C++

Co Je Konstruktor Dedicnosti V C



V C++, dědictví je klíčový pojem v objektově orientovaném programování. Odvozená třída může zdědit vlastnosti a chování základní třídy díky mocným dědictví schopnost v C++. Odvozená třída po vytvoření okamžitě zdědí všechny členy základní třídy. Je nutné, aby konstruktor odvozené třídy inicializoval i členy základní třídy. V C++, dědictví je výkonná funkce, která umožňuje vývojářům znovu používat kód, zlepšovat efektivitu a organizovat kód do logických hierarchií.

Spolu s dědičností jsou v C++ nezbytné také konstruktory. A konstruktér je jedinečná členská funkce, která umožňuje inicializovat vlastnosti objektu. An Konstruktor dědičnosti je konstruktor používaný k inicializaci objektů základní třídy i odvozených tříd, které odvozená třída zdědila. The konstruktor dědičnosti je zodpovědný za inicializaci jak zděděných členů základní třídy, tak odvozených členů třídy. Aby toho dosáhl, konstruktor vyvolá konstruktor základní třídy a zajistí, že všechny členy odvozené třídy jsou správně inicializovány, včetně těch, které jsou zděděny ze základní třídy.

Zavoláním konstruktoru základní třídy a předáním nezbytných parametrů, konstruktor dědičnosti inicializuje členy základní třídy. To se provádí pomocí „základní třída (argumenty)“ inicializační seznam v konstruktoru. Další instrukce týkající se odvozené třídy jsou uvedeny v těle konstruktoru.







Syntaxe pro dědění třída v C++ je:



třída Odvozená třída : accessSpecifier BaseClass {
// členové třídy
} ;

Nová třída, která se v tomto případě tvoří, 'Odvozená třída', bude dědit od „Základní třída“. Úroveň přístupu ke zděděným členům je určena „ accessSpecifier“. C++ využívá tři typy specifikátorů přístupu, jmenovitě 'veřejné', 'soukromé', a 'chráněný' . Slovo 'veřejnost' označuje, že odvozená třída má přístup k veřejným členům základní třídy. Odvozená třída nemá přístup k členům základní třídy, podle 'soukromý' specifikátor. Odvozená třída má přístup k chráněným členům základní třídy, které mohou zdědit jejich podřízené třídy, podle 'chráněný' specifikátor.



Příklad dědičnosti v C++

Následující příklad ukazuje implementaci Dědictví v C++:





#include
použitím jmenný prostor std ;

třída Zvíře {
veřejnost :
prázdnota jíst ( ) {
cout << 'Můžu jíst!' << endl ;
}
prázdnota spát ( ) {
cout << 'Mohu spát!' << endl ;
}
} ;
třída Kočka : veřejnost Zvíře {
veřejnost :
prázdnota mňoukat ( ) {
cout << 'Můžu mňoukat!' << endl ;
}
} ;
int hlavní ( ) {
Kočka kočka 1 ;
kat1. jíst ( ) ;
kat1. spát ( ) ;
kat1. mňoukat ( ) ;

vrátit se 0 ;
}

Daný kód definuje dvě třídy, 'Zvíře' a 'Kočka' , kde 'Kočka' je odvozeno z 'Zvíře' . Obě třídy mají některé členské funkce, jako např „jíst“, „spát“ , a 'mňoukat' . Hlavní funkce vytváří objekt třídy 'Kočka' a volá zděděno funkce ze třídy 'Zvíře' stejně jako specifická funkce třídy 'Kočka' , který je 'mňoukat' . Program odešle text do konzole, což znamená, že kočka může jíst, spát a mňoukat.

Výstup



Když je třída odvozena, všechny členské proměnné a členské funkce základní třídy se přenesou do odvozené třídy. The zděděno přístupnost členů v odvozené třídě je určena specifikátorem přístupu. Odvozená třída může také nahradit nové funkce za ty, které již existují. Může přidávat nové implementace pro metody základní třídy a přidávat nové členské funkce a proměnné.

Je zásadní mít na paměti, že konstruktor dědičnosti musí být použit k explicitnímu volání konstruktoru základní třídy s nezbytnými parametry, pokud má základní třída výchozí konstruktor nebo pokud není k dispozici.

Závěr

Silnou vlastností dědictví v C++ umožňuje třídám znovu používat kód zděděním charakteristik a akcí od ostatních. Užitečná funkce C++ konstruktor dědičnosti umožňuje odvozeným třídám dědit vlastnosti, metody a datové členy základní třídy. S přidáním inicializačního seznamu pro konstruktory základní třídy je definována pomocí stejné syntaxe jako standardní konstruktor. Programátoři C++ mohou minimalizovat duplikaci kódu a vylepšit strukturu kódu pomocí konstruktor dědičnosti . Pro vytváření složitých hierarchií tříd v objektově orientovaném programování je to důležitý nástroj.