我是C++的新手,正在尝试解决这个问题。编译时,出现错误a nonstatic member reference must be relative to a specific object。编写代码的正确方法是什么?这就是numShapes给我错误的地方。

class Application
private:
     int numShapes;
public:
     Shapes * shapes[numShapes];

然后,如果这是正确的术语,则将其作为我的虚拟基类放在另一个 header 中。
class Shapes
{
    virtual void draw(char letter);
    virtual ~Shapes() {}
};

最佳答案

代码Shapes * shapes[numShapes];正在请求编译器保留numShapes数量的空间。问题在于它在编译时没有已知值。因此,要么使numshapes为常量,要么研究动态内存分配。

关于c++ - 无法找出此非静态成员引用错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40837314/

10-09 13:10