c++ - 错误 C2228 : left of '.draw' must have class/struct/union

标签 c++ vector polymorphism

好的,我认为问题是我还没有初始化 vector 但我不知道......无论如何,我收到一条错误消息说这是错误的:

drawable.at(i).draw();

在头文件中将 vector 声明为:

vector<render*> drawable;

它是一个渲染指针 vector ,因为我有一大堆需要绘制的类,它们都是具有纯虚函数的父级的子级,这是错误的方式吗?

顺便说一句,我用这个把 child 放进去: header :

ShaysWorld * sw;

cpp:

sw = new ShaysWorld;
drawable.push_back(sw);

如何解决“.draw”左边的问题?

最佳答案

drawable.at(i)->draw(); 因为 drawable.at(i) 是一个渲染指针

关于c++ - 错误 C2228 : left of '.draw' must have class/struct/union,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7202754/

相关文章:

C++ 虚拟方法 : Must I create a virtual method in the parent class for every method that the child and parent do not share?

c++ - 编写跨平台 C++ 代码(Windows、Linux 和 Mac OSX)

c++ - std::copy 正在复制一个额外的回车符

c++ - 指向其他 vector 元素的指针的 vector

math - 从矢量中消除方向

java - 如何在 JPA 中定义多态性

java - 为什么在对象和 vector 之间进行选择时,Java 的多态性无法捕捉到正确的方法?

c++ - 我应该如何去阅读一个大的二进制文件

c++ - 在运行时知道类的大小

c++ - STL Vector是否默认使用 'new'和 'delete'进行内存分配?