ALTE DOCUMENTE
|
||||||||||
Functii virtuale
Sa consideram scrierea unui program pentru afisarea formelor pe un ecran. Atributele comune ale formelor se reprezinta prin clasa shape, atribute specificate prin clase derivate specifice:
class shape
point where()
virtual void draw();
virtual void rotate(int);
//........
};
Functiile care pot fi definite fara cunostinte despre forma specifica (de exemplu move si where), pot fi declarate in mod obisnuit. Restul se declara virtual, adica se vor defini intr-o clasa derivata. De exemplu:
class circle : public shape
//.......
};
Acum daca shape_vec este un vector de forme, noi putem scrie:
for(int i=0; i<no_of_shapes; i++)
shape_vec[i].rotate(45);
pentru a roti (si redesena) toate formele cu 45 de grade.
Acest stil este deosebit de util in programe interactive cind obiectele de tipuri diferite sint tratate uniform de catre softwareul de baza.
|