Rezumate clase de bază - stadopedia

funcția virtuală prototip = 0;

O funcție virtuală pură este folosită pentru a "amâna" decizia de a implementa o funcție. În terminologia OOP, aceasta se numește o metodă întârziată.







Vom explica acest concept prin dezvoltarea unei forme primitive de modelare ecologică. În exemplul nostru, vom avea diferite forme de interacțiune a vieții folosind abstracția de bază abstractă. Creați fox (vulpe) ca un prădător tipic și iepure (iepure) ca pradă. Iepurele are iarbă.

const int N = 40, STATE = 4; // dimensiunea unei suprafețe pătrate

tippedef living * lume [N] [N]; // lumea va fi un model

clasa de viață

int rând, coloană; // locație

sumele void (lume, int sm []); // sm [#states] este folosit în continuare

(int r, int c): rândul (r), coloana (c) <>

starea virtuală care () = 0; // identificarea statului

viata virtuala * urmatoarea (lume w) = 0; // calculul următor

void living :: sume (lume w, int sm [])

pentru (int i = -1; i <= 1; i++)

pentru (int j = -1; j <= 1; j++) sm[w[row+i][column+j]->care ()] ++;

// clasa actuală - numai pradă







vulpea de clasă: viața publică

int age; // folosit pentru a decide cu privire la moarte

fox (int r, int c, int a = 0): viu (r, c), vârstă (a) <>

stat cine () // Metoda amânată pentru FOX

viata * urmatoarea (lumea w); // Metoda amânată pentru FOX

// clasa actuală - numai victime

clasa de iepure: viața publică

int age; // folosit pentru a decide cu privire la moarte

iepure (int r, int c, int a = 0): viu (r, c), vârstă (a) <>

stat cine () // metodă amânată pentru RABBIT

viata * urmatoarea (lumea w); // metodă amânată pentru RABBIT

// plante actuale numai pentru clasă

iarba de clasă: viața publică

iarba (int r, int c): viață (r, c) <>

stat cine () // metoda amânată pentru GRASS

viata * urmatoarea (lumea w); // metoda amânată pentru GRASS

clasa goală: viața publică

goală (int r, int c): viață (r, c) <>

stat cine () // metoda amânată pentru EMPTY

viata * urmatoarea (lumea w); // metoda amânată pentru EMPTY

Rețineți că proiectul permite dezvoltarea altor forme de pradă, pradă și viața plantelor, utilizând următorul nivel de moștenire. Caracteristicile de comportament ale fiecărei forme de viață sunt fixate în versiunea următoare ().

Living * iarbă :: următoarea (lume w)

dacă (sumă [GRASS]> suma [RABBIT] / / există iarbă

întoarcere (iarba nouă (rând, coloană));

retur (nou gol (rând, coloană));

Iarba poate fi mâncată de iepure. Dacă există mai multă iarbă în cartier decât iepure, iarba rămâne, altfel - iarba va fi mâncată.







Articole similare

Trimiteți-le prietenilor: