首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连锁继承

连锁继承
EN

Stack Overflow用户
提问于 2013-10-27 13:27:58
回答 2查看 109关注 0票数 0

目前,我有两个类,可绘制类和可转换类,Actors之类的东西继承了这两个类,问题是当将对象绘制到屏幕时,我遍历一个没有Transformable中包含的getPosition()函数的Drawable向量。将虚拟的getPosition()添加到this中解决了这一问题,但随后在其他地方创建了对函数的模糊调用问题。因此,我是否可以让可拖继承、转换和Actor继承可绘制,并获得与继承两个类相同的结果?

编辑:不是所有的角色都是角色,有些是精灵(游戏对象)、原始形状等等。实际上,我需要抽签循环中的getPosition()的唯一原因是,为了伪造深度,我通过向量循环从0 Y坐标到屏幕底部,首先绘制屏幕上较高的对象,然后在靠近“前端”的对象后面绘制。我没有编写可绘制/可转换类,我希望不必完全更改它们,以便在一个实例中满足一个函数调用。唯一的问题是当我引用Drawable向量时。我不太明白为什么这样设计,因为所有使用可绘制类的东西都继承了可转换类,所以它们应该是一个类,但它们不是。

我的问题是这是否:

代码语言:javascript
复制
class foo {}
class bar{}
class foobar : public foo, public bar {}

和这个一样

代码语言:javascript
复制
class foo {}
class bar : public foo {}
class foobar : public bar {}

对象可以继承其父类继承的类的公共成员和受保护成员吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-27 13:44:08

在这种情况下,我将选择的设计是移除可转换类,并将位置属性和成员函数移动到可绘制类。一些‘可拉’的东西需要画在某处,因此需要一个位置,不管它是否可以移动。

对象可以继承其父类继承的类的公共成员和受保护成员吗?

又短又甜:是的。(仅在继承为publicprotected的情况下)

有关继承类型的更多信息,请参见this

票数 0
EN

Stack Overflow用户

发布于 2013-10-27 13:44:47

首先,考虑一下不可绘制的对象是否会被转换。为什么要移动一些看不见的东西。

而且,getPosition (可能还有setPosition)不应该实际上是可绘制的东西的一部分吗?否则你怎么知道在哪里画呢。

我强烈建议重新考虑您的类结构,结合常见的功能,不要仅仅因为您可以就拥有数百万个不必要的接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19618576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档