Hjem Personlig finansiering Hvordan polymorfisme virker i C ++-dummies

Hvordan polymorfisme virker i C ++-dummies

Video: Population Genetics: When Darwin Met Mendel - Crash Course Biology #18 2025

Video: Population Genetics: When Darwin Met Mendel - Crash Course Biology #18 2025
Anonim

Som et gjerdsstav, støtter C ++ både tidlig og sen binding. Ethvert gitt programmeringsspråk kan støtte enten tidlig eller sen binding basert på lurene til utviklerne. Eldre språk som C pleier å støtte tidlig binding alene. Nylige språk som Java og C # støtter bare sen binding.

Du kan bli overrasket over at standard for C ++ er tidlig bindende. Utgangen av OverloadOverride -programmet slik det vises, er som følger:

Vi er i Student:: Beregning Vi er i Student:: Beregning Trykk Enter for å fortsette …

Årsaken er enkel, dersom det er litt datert. For det første må C ++ handle så mye som C som mulig for å beholde oppoverforenlighet med forgjengeren. For det andre legger polymorfisme en liten mengde overhead til hver funksjonssamtale både når det gjelder datalagring og kode som trengs for å utføre samtalen.

Grunnleggerne til C ++ var opptatt av at ytterligere overhead ville bli brukt som en grunn til ikke å vedta C ++ som systemets valgfrihet, slik at de gjorde det mer effektive, tidlig bindende standard.

For å gjøre en medlemsfunksjon polymorf, må programmøren flagge funksjonen med C ++-søkeordet virtuelt, som vist i følgende endring i erklæringen i OverloadOveride < program: klassen Student {public: virtual void calcTuition () {cout << "vi er i Student:: calcTuition" << endl;}};

Nøkkelordet

virtuelt som forteller C ++ at calcTuition () er en polymorf funksjon. Det vil si å forklare calcTuition () virtuelle betyr at samtaler til det vil bli bundet sent hvis det er tvil om typen kjøretid for objektet som kalles kallelse () kalles.

Utfør programmet

OverloadOveride med calcTuition () deklarert virtuelt genererer følgende utgang: Vi er i Student:: calcTuition Vi er i GraduateStudent:: calcTuition Press Skriv inn for å fortsette …

Hvis du er komfortabel med debuggeren som følger med C ++-miljøet, burde du virkelig gå gjennom dette eksemplet. Det er så kult å se programmet enkeltsteg i Student:: calcTuition () første gang fn () kalles men inn i GraduateStudent:: calcTuition () på den andre samtale. Du kan ikke virkelig sette pris på polymorfisme før du har prøvd det.

Du må kunngjøre funksjonen virtuell bare i grunnklassen. Den "virtuelle" blir automatisk nedført til underklassen. Noen ganger følger programmene imidlertid kodningsstandarden for å erklære funksjonen virtuell overalt (nesten).

Hvordan polymorfisme virker i C ++-dummies

Redaktørens valg

Hvordan lage Baseball Practice Fun - Dummies

Hvordan lage Baseball Practice Fun - Dummies

Som baseball trener må du ikke bare lære laget ditt grunnleggende i spillet, må du lære disse grunnleggende morsomme, slik at spillerne blir interessert og engasjert. Bruk tipsene i følgende liste for å gjøre baseballøvelsen morsom: Sørg for mange repetisjoner for hvert barn. Stopp treningen kort ...

Basisspillers ansvar i Baseball - dummies

Basisspillers ansvar i Baseball - dummies

Baseball trener er ikke bare ansvarlige for lagspillet som en hel, men for coaching spillere når de når første og tredje base i løpet av et baseballspill. Ansvaret for å coaching hver base er forskjellig. Hva en første basissjåfør gjør: Oppfordrer smeten til å kaste ned første baseline på infield hits. ...

Hvordan fantasy baseball ligaene blir scoret - dummies

Hvordan fantasy baseball ligaene blir scoret - dummies

Fantasy baseball har tre hovedspillformater som bestemmer hvordan ligaen din score punkter. Spillformatene for fantasybaseball er Rotisserie, Head-to-Head One Win og Point System. Hvert format blir scoret avhengig av ligaoppsettet. For eksempel vil 5 × 5 liga score poeng eller gevinster / tap på fem forhåndsvalgte treffstatistikk, samt fem ...

Redaktørens valg

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Kan trene det når som helst. Uformell oppmerksomhet meditasjon er når du trener oppmerksomhet uten å skille ut en spesiell tid for det. Her er ti eksempler på uformell oppmerksomhet: Mindful kommunikasjon - Når du snakker eller hører på noen andre, blir du klar over lyden av ...

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

En nydelig holdning til å ha oppmerksomhet og Livet generelt er lekenhet og lethed. Hvis en meditasjon ikke virker for deg første gang eller ikke føles riktig for deg, ikke vær panikk, men tenk på opplevelsen som et eksperiment som du kan prøve igjen senere. Tilnærming oppmerksomhet som du ville et nytt spill eller ...

Redaktørens valg

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

For å bestemme seg for en Kvalitetsinnstilling (eller bildeoppløsningstørrelse) for Canon Rebel T3 eller T3i, den første avgjørelsen du må gjøre er hvor mange piksler du vil at bildet skal inneholde. Piksler er de små firkantede fliser hvorfra alle digitale bilder er laget; piksel er kort for bildeelement. Hvis din ...

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Videoopplastingsfunksjonen på Canon EOS Rebel T7i / 800D fanger korte videoklipp som er sydd i et enkelt opptak, kalt et videoalbum. Du kan stille klippelengden til 8, 4 eller 2 sekunder lang (men alle klippene i et album må ha samme lengde). Med tanke på individets korthet ...