Hur löser virtuellt arv diamantproblemet?
Hur löser virtuellt arv diamantproblemet?

Video: Hur löser virtuellt arv diamantproblemet?

Video: Hur löser virtuellt arv diamantproblemet?
Video: The Real Story of Paris Hilton | This Is Paris Official Documentary 2024, November
Anonim

Virtuellt arv löser sig klassikern Diamantproblem ”. Det säkerställer att barnklassen bara får en enda instans av den gemensamma basklassen. Med andra ord, Snake-klassen kommer har bara en instans av LivingThing-klassen. Klasserna Djur och Reptil delar denna instans.

I detta avseende, vad är diamantproblemet i arv?

den diamantproblem ” är en tvetydighet som kan uppstå som en konsekvens av att tillåta flera arv . Det är ett allvarligt problem för språk (som C++) som tillåter flera arv av staten. InJava däremot flera arv är inte tillåtet för klasser, endast för gränssnitt, och dessa innehåller inte tillstånd.

Därefter är frågan hur en virtuell basklass hjälper till med arv? Virtuella basklasser erbjuda ett sätt att spara utrymme och undvika oklarheter i klass hierarkier som använder multipla arv. När en basklass anges som en virtuell bas , kan det fungera som en indirekt bas mer än en gång utan dubblering av dess datamedlemmar.

Vet också, vad är virtuellt offentligt arv?

Virtuellt arv är en C++-teknik som säkerställer att endast en kopia av en basklasss medlemsvariabler är ärvt av barnbarnshärledda klasser. Denna funktion är mest användbar för flera arv , eftersom det gör virtuell basera ett gemensamt subobjekt för den härledande klassen och alla klasser som är härledda från den.

Hur löser Interface diamantproblem?

Hur gör använder en gränssnitt i Java lösa de diamantproblem ? Alltså om två gränssnitt har samma metodsignatur och en klass vill ärva (implementerar i Java) från dessa två gränssnitt , det finns ingen "metodkropp" att ärva, därför " diamant -arv" problem undviks.

Rekommenderad: