- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
http://en.wikipedia.org/wiki/Diamond_problem
我知道这意味着什么,但我可以采取哪些措施来避免它?
最佳答案
一个实际的例子:
class A {};
class B : public A {};
class C : public A {};
class D : public B, public C {};
请注意 D 类如何从 B 和 C 继承。但 B 和 C 都从 A 继承。这将导致 A 类的 2 个拷贝包含在 vtable 中。
为了解决这个问题,我们需要虚拟继承。需要虚拟继承的是 A 类。因此,这将解决问题:
class A {};
class B : virtual public A {};
class C : virtual public A {};
class D : public B, public C {};
关于c++ - 使用多重继承时如何避免死亡钻石?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/137282/
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有几个 div,我想将它们旋转成菱形,但我不希望它们的背景图像旋转,我该如何实现?这是我现在的代码 dj-1-overlay.png" /> 和我的 CSS: #diamonds div { -
我正在制作 Canvas 动画,其中一个图像应该是钻石。 现在,我做到了这一点: ctx[0].beginPath(); ctx[0].moveTo(0,-80); ctx[0].lineTo(-60
考虑以下几点: #include #include using namespace std; class A { public: A(const char* sName) //convers
以某种方式检测 charuco 钻石对我来说不适用于更大的图像。使用我的 1920x1080 原始图像,它既不能可靠地识别 id(菱形 id 元素每次都在切换位置)。在第一张图片中,您可以看到它识别出
下面的代码是关于菱形继承(钻石问题)的。虚拟继承解决了这种歧义。 #include using namespace std; class A { public: voi
我目前正在开发 2D 等距 map 编辑器。我显示包含点和纹理的实体(立方体,播放器)。每个立方体由12个点组成。(12个点,但在sfml(sf::VertexArray)显示时作为4个点的3条边处理
如何在 iOS 的 openframeworks 中构建 3d 钻石?我很难在 openframeworks 中找到有用的 3d 渲染教程,我来自 Processing。 最佳答案 我认为这个故事有两
我是一名优秀的程序员,十分优秀!