lunedì 1 settembre 2014

Classi astratte (virtuali) in C++.

#include "iostream"
using namespace std;

class Figura{
protected:
 int lato;
public:
 Figura(int L){
  lato=L;
 }
 virtual int Area()=0;
 virtual void stampaArea(){
  cout << lato*lato << endl;
  getchar();
 }
};

class Quadrato: public Figura{
public:
 Quadrato(int L):Figura(L){}

 int Area(){
  return lato * lato;
 }
};


void main(){

 Quadrato mioQuadrato(5);
 cout << mioQuadrato.Area() << endl;
 getchar();
 mioQuadrato.stampaArea();

 
}


E' sufficiente che una classe abbia una funzione virtuale pura (ossia eguagliata a zero) per essere classe astratta.
Diversamente dalla sintassi del C# una funzione virtuale pura (che in C# si chiama astratta) non può essere dichiarata se non eguagliata a zero, mentre in C# viene dichiarata con la stessa forma in cui in C++ si dichiara il prototipo.

Nessun commento:

Posta un commento