Video: Fotosyntese 2025
I nheritance i C ++ en klasses evne til å arve evner eller egenskaper fra en annen klasse. Arv er et vanlig konsept. Du arver bestemte egenskaper fra klassen Human, som min evne til å snakke (mer eller mindre) intelligent og min avhengighet av luft, vann og karbohydratbasert næring (litt for avhengig av sistnevnte).
Disse egenskapene er ikke unike for mennesker. Klassen Menneske arver avhengighetene på luft, vann og næring fra klassen Mammal, som arvet den fra klassen Animal.
Muligheten til å gå ned egenskaper er en kraftig. Den lar deg beskrive ting på en økonomisk måte. For eksempel, hvis noen spør, "Hva er en and? "Du kan si," Det er en fugl som går i vei. "
Til tross for det du kanskje tror, gir dette svaret en betydelig mengde informasjon. Han vet hva en fugl er, og nå kjenner han alle de samme tingene om en ande pluss andens ekstra egenskap av "quackness". “
Objektorienterte (OO) språk uttrykker dette arveforholdet ved å tillate en klasse å arve fra en annen. OO-språk kan generere en modell som er nærmere den virkelige verden (husk at virkelige ting!) Enn modellen som genereres av språk som ikke støtter arv.
C ++ tillater en klasse å arve en annen klasse som følger:
klasse Student {}; klasse GraduateStudent: offentlig student {};
Her en GraduateStudent arver alle medlemmene av Student. Således en GraduateStudent IS_A Student . (Kapitaliseringen av IS_A understreker betydningen av dette forholdet.) Selvfølgelig kan GraduateStudent også inneholde andre medlemmer som er unike for en GraduateStudent .
Arv ble introdusert i C ++ av flere grunner. Selvfølgelig er hovedårsaken muligheten til å uttrykke arveforholdet. En mindre grunn er å redusere mengden skriving.
Anta at du har en klasse Student, , og du blir bedt om å legge til en ny klasse kalt GraduateStudent. Arv kan drastisk redusere antall ting du må sette i klassen. Alt du virkelig trenger i klassen GraduateStudent er ting som beskriver forskjellene mellom studenter og studenter.
En annen bivirkning har å gjøre med programvareendring. Anta at du arver fra noen eksisterende klasse. Senere finner du at grunnklassen ikke gjør akkurat hva underklasseet trenger.Eller kanskje har klassen en feil.
Endring av grunnklassen kan ødelegge annen kode som bruker den grunnleggende klassen. Opprette og bruke en ny underklasse som overbelaster feilfunksjonen med en korrigert versjon løser problemet uten å forårsake noen andre problemer.
