Я нашел это на веб-сайте, читая о виртуальном наследовании в С++
Когда используется множественное наследование, иногда необходимо использовать виртуальное наследование. Хорошим примером для этого является стандартная иерархия классов iostream:
//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
Как С++ гарантирует, что существует только один экземпляр виртуального члена, независимо от количества производных от него классов? С++ использует дополнительный уровень косвенности для доступа к виртуальному классу, обычно с помощью указателя. Другими словами, каждый объект в иерархии iostream имеет указатель на общий экземпляр объекта ios. Дополнительный уровень косвенности имеет незначительные накладные расходы, но это небольшая цена для оплаты.
Я запутался с утверждением:
С++ использует дополнительный уровень косвенности для доступа к виртуальному классу, обычно с помощью указателя
Кто-нибудь может это объяснить?