错误C2228:'.draw'的左边必须有class/struct/union

Mic*_*ael 2 c++ polymorphism vector

好吧,我认为问题是我没有初始化矢量,但我不知道......无论如何,我收到一个错误,说这是错误的:

drawable.at(i).draw();
Run Code Online (Sandbox Code Playgroud)

将向量在头文件中声明为:

vector<render*> drawable;
Run Code Online (Sandbox Code Playgroud)

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

顺便说一句,把孩子放进去我用过这个:标题:

ShaysWorld * sw;
Run Code Online (Sandbox Code Playgroud)

CPP:

sw = new ShaysWorld;
drawable.push_back(sw);
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决'.draw'问题的左边?

Rvd*_*vdK 6

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