Paano nalulutas ng virtual inheritance ang problema sa brilyante?
Paano nalulutas ng virtual inheritance ang problema sa brilyante?

Video: Paano nalulutas ng virtual inheritance ang problema sa brilyante?

Video: Paano nalulutas ng virtual inheritance ang problema sa brilyante?
Video: PAANO MAGDASAL PARA MALUTAS ANG PROBLEMA? INSPIRING HOMILY II FR. JOWEL JOMARSUS GATUS 2024, Nobyembre
Anonim

Ang virtual na pamana ay malulutas ang klasiko Problema sa Diamond ”. Tinitiyak nito na ang childclass ay nakakakuha lamang ng isang instance ng karaniwang base class. Sa madaling salita, ang Snake class kalooban mayroon lamang isang halimbawa ng klase ng LivingThing. Ang mga klase ng Hayop at Reptile ay nagbabahagi ng pagkakataong ito.

Sa bagay na ito, ano ang problema ng brilyante sa mana?

Ang problema ng brilyante ” ay isang kalabuan na maaaring lumitaw bilang resulta ng pagpayag sa maramihang mana . Ito ay isang seryoso problema para sa mga wika (tulad ng C++) na nagbibigay-daan para sa maramihang mana ng estado. SaJava, gayunpaman, marami mana ay hindi pinapayagan para sa mga klase, para lamang sa mga interface, at ang mga ito ay hindi naglalaman ng estado.

Kasunod nito, ang tanong ay, paano nakakatulong ang virtual base class sa mana? Virtual base na mga klase nag-aalok ng isang paraan upang makatipid ng espasyo at maiwasan ang mga kalabuan klase mga hierarchy na gumagamit ng maramihang pagmamana. Kapag a batayang klase ay tinukoy bilang a virtualbase , maaari itong kumilos bilang hindi direkta base higit sa isang beses nang walang pagdoble ng mga miyembro ng data nito.

Alamin din, ano ang virtual public inheritance?

Virtual na pamana ay isang C++ na pamamaraan na tumitiyak na isang kopya lamang ng mga variable ng miyembro ng base class minana sa pamamagitan ng apo na nagmula sa mga klase. Ang tampok na ito ay pinakakapaki-pakinabang para sa maramihang mana , dahil ginagawa nito ang virtual ibase ang isang karaniwang paksa para sa nagmula na klase at lahat ng mga klase na nagmula rito.

Paano malulutas ng Interface ang problema sa brilyante?

Paano gamit ang isang interface sa Java lutasin ang problema ng brilyante ? Kaya, kung dalawa mga interface ay may parehong lagda ng pamamaraan at nais ng isang klase na magmana (nagpapatupad sa Java) mula sa dalawang ito mga interface , walang "katawan ng pamamaraan" na magmana, kaya " brilyante mana" isyu ay iniiwasan.

Inirerekumendang: