Logo sv.boatexistence.com

Hur otydlighet uppstår vid multipelt arv?

Innehållsförteckning:

Hur otydlighet uppstår vid multipelt arv?
Hur otydlighet uppstår vid multipelt arv?

Video: Hur otydlighet uppstår vid multipelt arv?

Video: Hur otydlighet uppstår vid multipelt arv?
Video: Digitalt seminarium: Delaktighet i innovation 2024, Maj
Anonim

Tvetydigheten som uppstår vid användning av multipelt arv hänvisar till en härledd klass som har mer än en överordnad klass som definierar egenskap[er] och/eller metod[er] med samma namnTill exempel, om 'C' ärver från både 'A' och 'B' och klasserna 'A' och 'B', definierar båda en egenskap som heter x och en funktion som heter getx.

Vad är tvetydigheten i multipelt arv?

Tvetydighet kommer huvudsakligen i multiple inheritance Två basklasser har funktioner med samma namn, medan en klass som härrör från båda basklasserna inte har någon funktion med detta namn. När vi anropar funktionen med det härledda klassens objekt kan kompilatorn inte ta reda på vilken av de två funktionerna som avses.

Finns det någon chans till tvetydighet i begreppet multipelt arv?

Tvetydighet i arv kan definieras som när en klass härleds för två eller flera basklasser då det finns chanser att basklasserna har funktioner med samma namn. Så det kommer att förvirra härledd klass att välja mellan liknande namnfunktioner.

Vilken tvetydighet uppstår vid multipelarv och hur kan det lösas?

En tvetydighet kan uppstå när det finns flera vägar till en klass från samma basklass Detta betyder att en underordnad klass kan ha dubbletter av medlemmar som ärvs från en enda basklass. Detta kan lösas genom att använda en virtuell basklass. … En sådan basklass kallas virtuell basklass.

Vad är tvetydighetsarv Hur övervinner man förklara med exempel?

Anta till exempel att två klasser som heter A och B båda har en medlem som heter x, och en klass som heter C ärver från både A och B. Ett försök att komma åt x från klass C skulle vara tvetydigt. Du kan lösa oklarheter genom att kvalificera en medlem med dess klassnamn genom att använda operatorn scope resolution (::).

Rekommenderad: