Salve a tutti, mi sto avvicinando alla programmazione C++ e sto studiando la parte relativa all'ereditarietà e polimorfismo.
Ho capito come funziona ma ho un dubbio.

Venendo dalla programmazione Java volevo provare l'esempio "classico" delle figure. Tutto funziona, per cui creo la classe base "figure" e le classe derivate "triangle, circle, ecc...".

Il problema è se voglio mettere in atto il polimorfismo come sono abituato a fare non funziona...Nel main:


codice:
figure ar[5] = {r,t,c,r2,t2};
	p = &r2;
	p->area();
	p = ar;
	while(n<5){
		p->area();
		n++;
		p++;
	}
Creo un array di figure, faccio puntare un puntatore di figure all'array e vorrei eseguire il metodo di calcolo dell'area per ogni figura contenuta nell'array, ma viene eseguito il metodo "area()" della classe base "figure" e non il metodo area() corrispettivo di ogni figura.
Come fare in C++ a eseguire qualcosa del genere? Immagino che il problema sia perchè inserisco le figure in un array di tipo "figure".
Grazie