Какие обычно дополнительные накладные расходы по памяти и по скорости вызова на использование виртуального наследования интерфейсов ?
struct ISome
{
virtual void Some1() = 0;
};
struct ISomeA : virtual public ISome
{
virtual void Some1A() = 0;
};
struct ISomeB : virtual public ISome
{
virtual void Some1B() = 0;
};
struct Some : virtual public ISome
{
void Some1() {}
};
struct SomeA : public ISomeA
{
void Some1A() {}
};
struct SomeB : public ISomeB
{
void Some1B() {}
};
struct X
: public Some
, public SomeA
{
// Some1A::Some1 перекрыт в Some через dominance
};
struct Y
: public Some
, public SomeB
{
// Some1B::Some1 перекрыт в Some через dominance
};
X x;
Y y;