Вы должны написать "виртуальный" и "виртуальный" в виртуальное наследование?
На основе http://en.wikipedia.org/wiki/Virtual_inheritance
class Animal
{
...
};
// Two classes virtually inheriting Animal:
class Mammal : public virtual Animal
{
...
};
Я также видел книги, использующие следующий синтаксис,
class Mammal : virtual public Animal
{
...
};
Вопрос> Какой из них является стандартом C++?
Спасибо
2 ответа:
Из ISO / IEC 14882: 2003 (E) - 10.1
Список базовых классов может быть задан в определении класса с помощью обозначения:
base-clause: : base-specifier-list base-specifier-list: base-specifier base-specifier-list , base-specifier base-specifier: ::opt nested-name-specifieropt class-name virtual access-specifier opt ::opt nested-name-specifieropt class-name access-specifier virtual opt ::opt nested-name-specifieropt class-name access-specifier: private protected public
Обратите внимание, что рекомендуется либо одно.