【发布时间】:2012-04-14 16:24:11
【问题描述】:
我目前正试图掌握 C++ 中多重虚拟/非虚拟继承的概念。如果我理解正确,如果类 B 和 C 虚拟继承自类 A,它们共享一种单例对象,即它们都访问一个公共对象 A 的相同字段。多重继承将为任何 B 和 C 对象创建单独的 A 对象。
考虑到上述情况,有人会如此友善并在简单实用的环境中介绍它吗?为什么首先要进行多重继承,然后为什么要使用虚拟/非虚拟?
谢谢。
【问题讨论】:
-
您读过哪些有关 C++ 编程的文章?多重继承或虚拟继承很棘手,应该经常避免。问题在于从 B 和 C 继承的 D 类。
-
嗯,我现在正在研究它,我只有基本的介绍。如果有人能举一个简单的例子说明你为什么要使用其中一个,我肯定会更好。我不需要任何复杂/边缘案例。简单的,典型的场景,一句话就完美了。
-
我很少需要使用多重继承或虚拟继承。一个好的规则是永远不要使用它。
-
@BasileStarynkevitch "一个好的规则是永远不要使用它。" 不,一个好的规则是在适当的时候使用它。
标签: c++ multiple-inheritance virtual-inheritance