首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++多态类变量和函数

C++多态类变量和函数
EN

Stack Overflow用户
提问于 2013-07-12 10:23:03
回答 1查看 426关注 0票数 0

我正在用C++创建一个游戏,所有对象类都来自一个基类Instance,并且它们都列在一个vector中。我必须能够从向量中的指针访问变量和函数。下面是激活每个实例的每个update方法的代码:

代码语言:javascript
复制
for (double j = 1000; j >= -1000; j -= 1) {
    for (int i = 0; i < instances.size(); i += 1) {
        if (instances[i]->depth == j) {
            instances[i]->update();
        }
    }
}

我可以访问函数并执行它们,各个实例也可以访问它们自己的函数,但是我不能通过instances[i]->whatevervariable访问这些实例,而且它似乎从基类中获取变量的值。使用dynamic_casts不会有什么帮助,因为我试图让游戏变得非常灵活。那么我该如何设置

代码语言:javascript
复制
std::vector<Instances*> instances;

因此,它允许我通过instances[i]->访问变量和函数

类:

代码语言:javascript
复制
class Instance {
    public:
    double x;
    double y;
    double depth;

    virtual void update() { };
};
class Ball : public Instance {
    public:
    double x;
    double y;
    double depth;

    void update() {
        x += 1;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-12 10:31:59

重新声明Ball,如下所示

代码语言:javascript
复制
class Ball : public Instance {
    public:
    void update() {
        x += 1;
    }
}

通过设置":public Instance“,您可以使Ball成为实例的派生类,并具有相同的公共或受保护属性,它将具有深度、x和y属性,而无需显式声明它们。

http://www.learncpp.com/cpp-tutorial/112-basic-inheritance-in-c/

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

https://stackoverflow.com/questions/17606547

复制
相关文章

相似问题

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