Herança virtual em C ++
Encontrei isso em um site enquanto lia sobre herança virtual em c ++
Quando a herança múltipla é usada, às vezes é necessário usar a herança virtual. Um bom exemplo disso é a hierarquia de classes iostream padrão:
//Note: this is a simplified description of iostream classes
class ostream: virtual public ios { /*..*/ }
class istream: virtual public ios { /*..*/ }
class iostream : public istream, public ostream { /*..*/ }
//a single ios inherited
Como o C ++ garante que exista apenas uma instância de um membro virtual, independentemente do número de classes derivadas dele?C ++ usa um nível adicional de indireção para acessar uma classe virtual, geralmente por meio de um ponteiro. Em outras palavras, cada objeto na hierarquia iostream possui um ponteiro para a instância compartilhada do objeto ios. O nível adicional de indireção tem uma pequena sobrecarga de desempenho, mas é um preço pequeno a pagar.
estou confuso com a afirmação:
C ++ usa um nível adicional de indireção para acessar uma classe virtual, geralmente por meio de um ponteiro
alguém poderia explicar isso?