PDA

View Full Version : C++ ed ereditarietà virtuale


peppedx
02-04-2003, 15:36
Qualcuno mi spiegherebbe quali sono gli svantaggi delll'eredeitarietà virtuale?

dm69
03-04-2003, 22:09
La domanda e' mal posta.
L'eriditarieta' virtuale ha uno scopo, poi dipende se ti serve o no.
Comunque la questione e' questa:
in caso di ereditarieta' multipla puo' succedere che una classe eredita piu' volte dalla stessa classe es:

- B e' sotto classe di A;
- C e' sotto classe di A;
- D e' sottoclasse id B e C.
In questo caso una istanza di D contiene la parte specifica di B, la parte specifica di C e due istanze di A che gli arrivano ba B e C. Se questo non va' bene e si vuole una sola copia di A basta dichiarare B e C come sottoclasse virtual di A.

Ciao.

peppedx
06-04-2003, 09:17
Grazie, scusa se la domanda è malposta, ma il mio problema non è capire a che serve l'ereditarietà virtuale, ho capito cosa risolve, ma non ho capito quali sono i suoi lati negativi, comporta solo un overhead o implica qualcos'altro?

dm69
06-04-2003, 21:15
La questione relativa all'ereditariate' virtuale viene fuori quando si fa uso di ereditarieta' multipla. Nella mia esperienza l'ho usata in rarissimi casi e si trattava sempre di classi che dovevano implementare piu' "interfacce" (ossia classi con tutti metodi virtuali puri). Quindi, a scanso di equivoci, tutte le derivazioni (relative alle interfacce) le facevo specificando virtual.
In altri casi non so' dirti.

Ciao.