Виртуальный публичный класс используется для класса, чтобы гарантировать, что объект класса наследует только один подобъект.
class L { /* ... */ }; // indirect base class
class B1 : virtual public L { /* ... */ };
class B2 : virtual public L { /* ... */ };
class D : public B1, public B2 { /* ... */ }; // valid
Есть ли у нас побочный эффект при использовании виртуального публичногомы не используем его для одиночного наследования.Например,
class L { /* ... */ }; // indirect base class
class B1 : virtual public L { /* ... */ };
class D : public B1 { /* ... */ }; // valid
совпадает с
class L { /* ... */ }; // indirect base class
class B1 : public L { /* ... */ };
class D : public B1 { /* ... */ }; // valid
?Я имею в виду, просто ли сделать родительский класс виртуальным для всех возможных случаев?