在 sfml 的构造函数中初始化向量数组

initalizing array of vectors in constructor in sfml

我将 SFML 库用于图形和其他内容,例如矢量。在我的大脑中 class 我尝试做类似的事情:

class Brain{

Brain(int size){
Vector2f directions[size];
}
}

但它抛出一个错误,指出它必须计算为一个常量。我尝试了各种方法,但无法正确编译。任何人都知道为什么会发生这种情况,我该如何解决?

正如 C++ 注释中所建议的,数组的大小必须在编译时已知...如果您需要动态容器,您可以使用 std::vector

class Brain {
public:
    Brain(int size) : _directions{size}
    {
    }

private:
    vector<Vector2d> _directions;
};

不要忘记 public 和私人访问您的 class... 默认情况下,class 上的所有内容都是 private 所以在您的代码段中的构造函数class 是私人的!