инициализация массива векторов в конструкторе в sfml - PullRequest
0 голосов
/ 16 декабря 2018

Я использую библиотеку SFML для графики и других вещей, таких как векторы.В моем мозговом классе я пытаюсь сделать что-то вроде:

class Brain{

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

Но он выдает ошибку, говорящую, что он должен быть константой.Я перепробовал все что угодно, но не могу заставить его правильно скомпилировать.Кто-нибудь знает, почему это происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 16 декабря 2018

Как указано в комментариях в C ++, размер массива должен быть известен во время компиляции ... если вам нужны динамические контейнеры, вы можете использовать std::vector.

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

private:
    vector<Vector2d> _directions;
};

Не забудьте publicи частный доступ к вашему классу ... По умолчанию для класса все равно private, поэтому в вашем фрагменте конструктор класса является приватным!

...