PDA

View Full Version : [c++] funzioni virtual


mistergks
03-06-2015, 17:55
Sto studiando per bene il polimorfismo nel c++
Ho capito piu o meno l'utilizzo delle funzioni virtual ma non capisco una cosa.

La differenza nell utilizzo di una funzione virtual e una non virtual in una gerarchia di classi si vede solo(?) quando si accede ad un oggetto della classe derivata (o classe figlia a seconda di come volete chiamarla) tramite un puntatore di tipo classe base (classe padre).

Ok su questo. Ma perché accedere ad un oggetto della classe derivata con un puntatore di tipo classe base?
Non ci sono altri modi? Questo non capisco

mistergks
03-06-2015, 18:57
Quindi è quasi un obbligo utilizzare il puntatore di tipo classe base?

A proposito.. Un'altra cosa: se ho una classe astratta e quindi con un almeno un metodo virtuale puro... Significa che non posso istanziare oggetti di tale classe.

Ad esempio sia A una classe astratta, non posso creare un oggetto :

A oggetto;

E nemmeno un puntatore:

A* oggetto;

Vero?

Mi è capitato peró di trovare cose tipo:

list <A*> listaditipoA;

È legale una cosa del genere? Ricordo che A è una classe astratta!