2009-05-08 1 views
7

Che cosa significa quando "virtuale" è in "classe Foo: barra virtuale pubblica" in contrapposizione a "virtuale void frob()"?Che cosa significa quando "virtuale" è in "classe Foo: barra virtuale pubblica" in contrapposizione a "virtuale void frob()"?

Per un determinato metodo ci sono 8 casi derivanti dalla presenza o dall'assenza di virtual nelle seguenti tre posizioni.

  1. Funzioni di una superclasse.
  2. La catena di ereditarietà per questa classe.
  3. Questa classe funziona.

Penso di capire come i numeri 1 e 3 interagiscono ma il numero 2 sembra ridondante. È? Cosa non sto comprendendo?

risposta

11

Questo è virtual inheritance, lo fai quando sai che farai più eredità. Quella pagina va in modo più dettagliato.