Kivonat alaposztályok - studopediya
virtuális prototípus funkció = 0;
Tisztán virtuális függvény használják „pihentetett” a döntést, hogy végre a funkciót. A OOP terminológia, ez az úgynevezett késleltetett módon.
Megmagyarázni ezt a koncepciót a fejlődő primitív formája az ökológiai modellezés. A példánkban mi lesz a különböző életformák interakció az absztrakt alap osztály nappali. Készítsen róka (fox), mint egy tipikus ragadozó és nyúl (nyúl), mint az áldozatot. Nyúl füvet (fű).
const int n = 40, ÁLLAMOK = 4; // mérete a tér nagysága
typedef élő * világ [N] [N]; // világ egy modell
osztály nappali / что живет в мире
int sor, oszlop; // helyen
void összegek (world, int sm []); // SM [#states] alkalmazzuk a következő
élő (int R, int c): sorban (R), (c) oszlop <>
virtuális állam, aki () = 0; // azonosító államok
virtuális nappali mellett * (world w) = 0; // számolja következő
void élő :: összegek (world w, int sm [])
A (int i = 1; i <= 1; i++)
A (int j = -1; j <= 1; j++) sm[w[row+i][column+j]->aki ()] ++;
// az aktuális osztály - csak a ragadozók
osztály róka: nyilvános nappali
int kor; // használják, hogy a döntést a halál
Fox (int R, int c, int a = 0): élő (r, c), kor (a) <>
állam, aki ()
nappali mellett * (world w); // halasztani Eljárás FOX
// az aktuális osztály - csak az áldozatok
osztály nyúl: nyilvános nappali
int kor; // használják, hogy a döntést a halál
nyúl (int R, int c, int a = 0): élő (r, c), kor (a) <>
állam, aki ()
nappali mellett * (world w); // halasztani Eljárás NYÚL
// az aktuális osztály - csak azok a növények
osztály fű: nyilvános nappali
fű (int r, int c): nappali (r, c) <>
állam, aki ()
nappali mellett * (world w); // halasztani Eljárás GRASS
osztály üres: nyilvános nappali
Üres (int r, int c): nappali (r, c) <>
állam, aki ()
nappali mellett * (world w); // halasztani Eljárás EMPTY
Felhívjuk figyelmét, hogy a projekt lehetővé teszi, hogy dolgozzon egyéb ragadozó, az áldozatok és a növényi élet, a következő szint az örökséget. Jellemzői viselkedésének életformák rögzített változat next ().
Nappali * fű :: next (világ w)
if (összege [GRASS]> összeg [nyúl) // füvet
visszatérési (új fű (sor, oszlop));
vissza (új üres (sor, oszlop));
Grass lehet enni nyúl. Ha van még a környéken a fű, mint a nyúl, fű marad, különben - fű fog enni.