【问题标题】:side effects of virtual public class in C++C++中虚拟公共类的副作用
【发布时间】:2011-03-09 03:29:16
【问题描述】:

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

当我们不将它用于单继承时,我们使用虚拟公共是否有副作用。例如,是

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++ class virtual


    【解决方案1】:

    将父类设为虚拟“以防万一”同样安全。该标准没有指定如何实现虚拟继承,但可能会对性能造成轻微影响。除非您正在编写对性能至关重要的东西,否则您不必担心它。

    【讨论】:

      【解决方案2】:

      http://www.phpcompiler.org/articles/virtualinheritance.html

      类需要使用一个或多个虚拟指针进行扩展,并且对象中的简单属性查找现在需要通过虚拟表进行两次间接

      与虚函数不同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        • 2013-02-14
        • 1970-01-01
        • 2019-09-06
        相关资源
        最近更新 更多