在 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 是私人的!
我将 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 是私人的!