Virtual Public Class用于一个类,保证一个类的一个对象只继承一个子对象。
class L { /* ... */ }; // indirect base class
class B1 : virtual public L { /* ... */ };
class B2 : virtual public L { /* ... */ };
class D : public B1, public B2 { /* ... */ }; // valid
当我们不将它用于单继承时,我们使用 virtual public 时会产生副作用吗?例如,是
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
?我的意思是,对于所有可能的情况,将父类设为虚拟是否安全?
最佳答案
“以防万一”将父类设为虚拟类同样安全。该标准没有指定如何实现虚拟继承,但可能会对性能造成轻微影响。除非您正在编写对性能至关重要的内容,否则您无需担心。
关于c++ - C++中虚拟公共(public)类的副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240970/