Ano ang Inheritance Constructor sa C++

Ano Ang Inheritance Constructor Sa C



Sa C++, mana ay isang pangunahing ideya sa object-oriented programming. Ang isang nagmula na klase ay maaaring magmana ng mga katangian at pag-uugali ng isang batayang klase salamat sa makapangyarihan mana kakayahan sa C++. Ang isang nagmula na klase ay agad na nagmamana ng lahat ng mga miyembro ng batayang klase kapag ito ay nabuo. Kinakailangan para sa nagmula na tagabuo ng klase na masimulan din ang mga batayang miyembro ng klase. Sa C++, mana ay isang malakas na feature na nagbibigay-daan sa mga developer na muling gamitin ang code, pagbutihin ang kahusayan, at ayusin ang code sa mga lohikal na hierarchy.

Kasama ng inheritance, mahalaga din ang mga constructor sa C++. A tagabuo ay isang natatanging function ng miyembro na nagbibigay-daan sa iyong simulan ang mga katangian ng object. Isang Tagabuo ng mana ay isang constructor na ginagamit upang simulan ang parehong base class at derived class objects na minana ng derived class. Ang tagabuo ng mana ay responsable para sa pagsisimula ng parehong minanang batayang mga miyembro ng klase at ang mga hinangong miyembro ng klase. Upang makamit ito, hinihiling ng tagabuo ang tagabuo ng batayang klase, tinitiyak na ang lahat ng mga miyembro ng nagmula na klase ay maayos na nasimulan, kabilang ang mga minana mula sa batayang klase.

Sa pamamagitan ng pagtawag sa constructor ng base class at pagpasa dito ng mga kinakailangang parameter, ang tagabuo ng mana sinisimulan ang mga miyembro ng batayang klase. Naisasagawa ito gamit ang 'base class(args)' listahan ng initialization sa constructor. Ang karagdagang mga tagubilin partikular sa nagmula na klase ay ibinibigay sa katawan ng tagabuo.







Ang syntax para sa pagmamana isang klase sa C++ ay:



klase DerivedClass : accessSpecifier BaseClass {
// mga miyembro ng klase
} ;

Ang bagong klase ay nabuo sa kasong ito, 'DerivedClass', magmamana mula sa 'BaseClass'. Ang antas ng pag-access sa mga minanang miyembro ay tinukoy ng ' accessSpecifier”. Gumagamit ang C++ ng tatlong uri ng mga specifier ng pag-access, ibig sabihin 'pampubliko', 'pribado', at 'protektado' . Ang salita “pampubliko” ay nagpapahiwatig na ang nagmula na klase ay may access sa mga pampublikong miyembro ng batayang klase. Ang nagmula na klase ay walang access sa mga miyembro ng batayang klase, ayon sa 'pribado' specifier. Ang nagmula na klase ay may access sa mga protektadong batayang miyembro ng klase na maaaring mamanahin ng kanilang mga anak na klase, ayon sa 'protektado' specifier.



Halimbawa ng Inheritance sa C++

Ang sumusunod na halimbawa ay nagpapakita ng pagpapatupad ng Mana sa C++:





#include
gamit namespace std ;

klase Hayop {
pampubliko :
walang bisa kumain ( ) {
cout << 'Kaya kong kumain!' << endl ;
}
walang bisa matulog ( ) {
cout << 'Kaya kong matulog!' << endl ;
}
} ;
klase Pusa : pampubliko Hayop {
pampubliko :
walang bisa meow ( ) {
cout << 'Kaya ko ng ngiyaw!' << endl ;
}
} ;
int pangunahing ( ) {
Pusang pusa1 ;
pusa1. kumain ( ) ;
pusa1. matulog ( ) ;
pusa1. meow ( ) ;

bumalik 0 ;
}

Ang ibinigay na code ay tumutukoy sa dalawang klase, “Hayop” at “Pusa” , saan “Pusa” ay nagmula sa “Hayop” . Ang parehong mga klase ay may ilang mga function ng miyembro, tulad ng 'kain tulog' , at 'meow' . Ang pangunahing function ay lumilikha ng isang bagay ng klase “Pusa” at tinatawag ang minana mga function mula sa klase “Hayop” gayundin ang tiyak na tungkulin ng klase “Pusa” , which is 'meow' . Ang programa ay naglalabas ng teksto sa console, na nagpapahiwatig na ang pusa ay maaaring kumain, matulog, at ngiyaw.

Output



Kapag nakuha ang isang klase, ang lahat ng mga variable ng miyembro ng batayang klase at mga function ng miyembro ay ililipat sa nagmula na klase. Ang minana Ang accessibility ng mga miyembro sa nagmula na klase ay tinutukoy ng access specifier. Ang nagmula na klase ay maaari ding palitan ng mga bagong feature para sa mga mayroon na. Maaari itong magdagdag ng mga bagong pagpapatupad para sa mga pamamaraan ng base class at magdagdag ng mga bagong function at variable ng miyembro.

Mahalagang tandaan na ang tagabuo ng mana dapat gamitin para tahasang tawagan ang constructor ng base class na may mga kinakailangang parameter kung ang base class ay may default na constructor o kung hindi ito available.

Konklusyon

Ang malakas na katangian ng mana sa C++ ay nagbibigay-daan sa mga klase na muling gamitin ang code sa pamamagitan ng pagmamana ng mga katangian at pagkilos mula sa iba. Isang kapaki-pakinabang na tampok ng C++'s tagabuo ng mana nagbibigay-daan sa mga nagmula na klase na magmana ng mga katangian, pamamaraan, at miyembro ng data ng isang batayang klase. Sa pagdaragdag ng isang listahan ng initialization para sa mga base class constructor, ito ay tinukoy gamit ang parehong syntax bilang isang standard constructor. Maaaring bawasan ng mga programmer ng C++ ang pagdoble ng code at pahusayin ang istraktura ng code sa pamamagitan ng paggamit ng tagabuo ng mana . Para sa paggawa ng kumplikadong mga hierarchy ng klase sa object-oriented programming, isa itong mahalagang tool.