Ang nagmula ba na klase ay nagmamana ng tagabuo?
Ang nagmula ba na klase ay nagmamana ng tagabuo?

Video: Ang nagmula ba na klase ay nagmamana ng tagabuo?

Video: Ang nagmula ba na klase ay nagmamana ng tagabuo?
Video: SEMILYA: PAANO MASASABING NORMAL? 2024, Mayo
Anonim

Sa mana , ang derived class inherits lahat ng mga miyembro(mga patlang, pamamaraan) ng base klase , ngunit nagmula na klase hindi pwede magmana ang tagabuo ng base klase kasi mga konstruktor ay hindi mga miyembro ng klase.

Gayundin, ang mga tao ay nagtatanong, ang mga klase ba ay nagmamana ng mga konstruktor?

Mga konstruktor hindi minana . Implicitly o tahasang tinatawag sila ng bata tagabuo . Lumilikha ang compiler ng default tagabuo (isa na walang argumento) at isang default na kopya tagabuo (isa na may argumento na isang sanggunian sa parehong uri). I-UPDATE: Sa C++11, mga konstruktor ay maaaring maging minana.

Gayundin, ano ang tagabuo sa nagmula na klase? A Nagmula na tagabuo ng klase may access lamang sa sarili nitong klase miyembro, ngunit a Nagmula sa klase mayroon din ang object minana ari-arian ng Base klase , at tanging base tagabuo ng klase maaaring maayos na simulan ang base klase mga miyembro. Kaya lahat ng mga konstruktor ay tinatawag, kung hindi, ang bagay ay hindi mabuo nang maayos.

Bukod dito, maaari bang mamana ang mga constructor at destructor?

Mga nagmula na klase gawin hindi magmana o labis na karga mga konstruktor o mga destructors mula sa kanilang mga batayang klase, ngunit sila gawin tawagan ang constructor at destructor ng mga batayang klase. Mga konstruktor ay tinatawag din kapag ang mga lokal o pansamantalang mga bagay sa klase ay nilikha, at mga destructors ay tinatawag kapag ang mga lokal o pansamantalang bagay ay wala sa saklaw.

Aling constructor ang unang tinawag sa inheritance?

Tagabuo at destructor sa single mana Batayang klase mga konstruktor ay unang tinawag at ang nagmula na klase mga konstruktor ay tinawag sunod sa single mana.

Inirerekumendang: