微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在存储抽象基类引用的泛型上使用每个循环?

如何解决如何在存储抽象基类引用的泛型上使用每个循环?

抱歉标题混乱。希望一个例子可以解决问题。我有一个名为 Renderable 的基类,如下所示:

class Renderable {
public:
    virtual void render() = 0 ;
};

我计划遍历可渲染对象的派生类引用的 std::vector。像这样:

std::vector<Renderable&> allRenderables = //passed in somewhere;
for (Renderable& renderable : allRenderables) {
    renderable.render();
}

我编译了,这就是我得到的:

错误 C2528::指向引用的指针非法

我尝试删除 & 但它告诉我 Renderable 是抽象的。另外,我认为这是一种糟糕的实现方式。

有人能告诉我我做错了什么吗?或者这是实现这一点的正确方法吗?

我先谢谢你!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。