Итак, у меня есть класс, который содержит вектор, и класс добавляет указатель на себя в другом векторе.В отдельной функции у меня есть цикл for, который проходит через вектор, содержащий указатели класса, и печатает размер вектора в классе, но я не получаю вывод.
вот исходный файл с функцией и определениемконструктора класса:
#include <SDL2/SDL.h>
#include <vector>
#include <initializer_list>
#include <iostream>
#include "InputManager.h"
//Vector including class pointers
std::vector<Button*> buttons;
//Constructor for class
Button::Button (std::initializer_list<SDL_Keycode> list) {
buttons.push_back(this);
for ( auto nkey : list )
{
this->keys.push_back(nkey);
}
}
void inputScan (SDL_Keycode inKey, bool nState) {
for (auto bAddrs : buttons)
{
std::cout << (bAddrs->keys).size();
}
}
и вот заголовок с объявлением класса:
#pragma once
class Button
{
public:
std::vector<SDL_Keycode> keys;
bool state = 0;
//Member vector who's size i'm trying to output
Button (std::initializer_list<SDL_Keycode> list);
};
void inputScan (SDL_Keycode, bool);
edit: после прочтения комментариев я обнаружил, что массив buttons
действительно пуст,Он должен быть заполнен конструктором.
Вот пример экземпляра класса, созданного в моем главном файле, который включает заголовок:
Button BUp({SDLK_w, SDLK_UP});