Logo lv.boatexistence.com

Kā rodas neskaidrības daudzkārtējā mantojumā?

Satura rādītājs:

Kā rodas neskaidrības daudzkārtējā mantojumā?
Kā rodas neskaidrības daudzkārtējā mantojumā?

Video: Kā rodas neskaidrības daudzkārtējā mantojumā?

Video: Kā rodas neskaidrības daudzkārtējā mantojumā?
Video: Kur rodas krāna ūdens? 2024, Maijs
Anonim

Neskaidrība, kas rodas, izmantojot vairākkārtēju pārmantošanu, attiecas uz atvasinātu klasi, kurai ir vairāk nekā viena vecākklase, kas definē rekvizītu(-us) un/vai metodi(-es) ar tādu pašu nosaukumuPiemēram, ja “C” manto gan no “A” un “B”, gan no klasēm “A” un “B”, abi definē rekvizītu ar nosaukumu x un funkciju ar nosaukumu getx.

Kāda ir neskaidrība daudzkārtējā mantojumā?

Neskaidrība galvenokārt rodas multiple mantojuma gadījumā Divām bāzes klasēm ir funkcijas ar vienādu nosaukumu, savukārt klasei, kas atvasināta no abām bāzes klasēm, nav funkciju ar šo nosaukumu. Kad mēs izsaucam funkciju ar atvasinātu klases objektu, kompilators nevar saprast, kura no divām funkcijām ir domāta.

Vai pastāv neskaidrības daudzkārtējās mantošanas koncepcijā?

Neskaidrību mantojumā var definēt, ja viena klase ir atvasināta divām vai vairākām bāzes klasēm, tad pastāv iespēja, ka bāzes klasēm ir funkcijas ar tādu pašu nosaukumu. Tāpēc, izvēloties kādu no līdzīgām nosaukuma funkcijām, atvasinātās klases tiks sajauktas.

Kādas neskaidrības rodas daudzkārtējā mantojumā un kā tās atrisināt?

Var rasties neskaidrības, kad ir vairāki ceļi uz klasi no vienas un tās pašas bāzes klases Tas nozīmē, ka pakārtotajai klasei var būt dublētas dalībnieku kopas, kas mantotas no vienas bāzes klases. To var atrisināt, izmantojot virtuālo bāzes klasi. … Šāda bāzes klase ir pazīstama kā virtuālā bāzes klase.

Kas ir neskaidrības pārmantošana Kā pārvarēt skaidrojumu ar piemēru?

Pieņemsim, ka divām klasēm ar nosaukumu A un B ir dalībnieks ar nosaukumu x, un klase ar nosaukumu C manto gan A, gan B. Mēģinājums piekļūt x no C klases būtu neskaidrs. Varat atrisināt neskaidrības, kvalificējot dalībnieku ar tā klases nosaukumu, izmantojot tvēruma izšķirtspējas (::) operatoru.

Ieteicams: