Hjem Personlig finansiering C ++ Abstrakt klassekonsept - dummies

C ++ Abstrakt klassekonsept - dummies

Video: Data Structures: Abstract Data Type (ADT) 2025

Video: Data Structures: Abstract Data Type (ADT) 2025
Anonim

En abstrakt klasse i C ++ er en klasse med en eller flere rene virtuelle funksjoner. En ren virtuell -funksjon er en virtuell medlemsfunksjon som er merket som uten implementering. Sannsynligvis har det ingen implementering fordi ingen implementering er mulig med informasjonen som tilbys i klassen, inkludert noen grunnklasser.

En vanlig, ikke-ren virtuell funksjon er kjent som en konkret funksjon (merk at en konkret funksjon kan være virtuell - dessverre bruker C ++ denne termen til å bety polymorf.

Syntaxen for å erklære en ren virtuell funksjon er demonstrert i følgende klasse: Konto:

// Konto - denne klassen er en abstrakt klasseklasse Konto {offentlig: Konto (unsigned accNo, double initialBalance = 0. 0); // tilgangsfunksjoner usigned int accountNo (); double acntBalance (); statisk int noAccounts (); // transaksjonsfunksjoner ugyldig innskudd (dobbeltbeløp); // følgende er en ren virtuell funksjon virtuell ugyldig tilbaketrekking (dobbeltbeløp) = 0; beskyttet: // behold kontoer i en koblet liste så det er ingen grense // til antall kontoer statisk int count; // antall kontoer usigned accountNumber; double balance;};

= 0 etter tilbakekallingserklæringen () indikerer at programmereren ikke har til hensikt å definere denne funksjonen. på er en plassholder for underklassene. Underklassen Konto forventes å tilsidesette denne funksjonen med en konkret funksjon. Programmereren må sørge for en implementering for hver medlemsfunksjon som ikke erklæres ren virtuell.

Noen programmerere tror at dette notatet er dumt. Men det er her for å bli, så du må bare lære å leve med det. Det er en grunn, om ikke akkurat en begrunnelse, for denne notasjonen. Hver virtuell funksjon må ha en oppføring i et spesialtabell.

Denne oppføringen inneholder adressen til funksjonen. Formentlig, i det minste på en gang var oppføringen for en ren virtuell funksjon 0. Det er i alle fall syntaxen du sitter fast med nå.

En abstrakt klasse kan ikke instanseres med et objekt; det vil si, du kan ikke lage et objekt ut av en abstrakt klasse. For eksempel er følgende erklæring ikke lovlig:

void fn () {// erklære en konto med 100 dollar konto acnt (1234, 100. 00); // dette er ikke lovlig acnt. uttak (50); // hva ville du forvente} // denne samtalen å gjøre?

Hvis erklæringen ble tillatt, ville det resulterende objektet være ufullstendig, mangler i noen muligheter. For eksempel, hva skal det forrige samtalen gjøre? Husk at det ikke er noen konto:: tilbaketrekking () .

Abstrakte klasser tjener som grunnklasser for andre klasser. En Konto inneholder alle egenskapene knyttet til en generisk bankkonto. Du kan opprette andre typer bankkontoer ved å arve fra Konto.

Det tekniske uttrykket er å instantiate . Du sier at klassen Konto ikke kan instantieres med en gjenstand eller et gitt objekt, instanterer Savings -klassen.

C ++ Abstrakt klassekonsept - 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 ...