Prima di definire la nozione di classe astratta, occorre dare la seguente definizione.
Si dice Funzione Virtuale Pura una funzione virtuale il cui prototipo è assegnato a zero.
Ad esempio:
virtual void Caratteristiche()=0;Più in generale, la sintassi di una funzione virtuale pura è la seguente:
virtual tipo nomefunzione(lista parametri)=0;e ha l'unico scopo di avvisare il compilatore che non si intende definire le funzioni virtuali.
class Figura { public: virtual void Disegna()=0; //Ogni figura può essere disegnata virtual void Cancella()=0; //Ogni figura può essere cancellata }; class Punto:public Figura { public: Punto(x,y); private: int x,y; //Coordinate del punto }; void Punto::Disegna() { . . . . } void Punto::Cancella() { . . . . } class Rettangolo:public Figura { public: Rettangolo(x1,y1,x2,y2); private: int x1,y1; //Coordinate del vertice sup. sx int x2,y2; //Coordinate del vertice inf. dx }; void Rettangolo::Disegna() { . . . . } void Rettangolo::Cancella() { . . . . }Si noti come, mediante l'uso della classe Base Astratta "Figura", sia possibile organizzare gerarchicamente i concetti di Punto e Rettangolo.
![]() Precedente |
![]() Home page |
![]() Successivo |