如何通过也位于向量中的指针查找作为类成员的向量的大小

时间:2019-06-08 04:19:32

标签: c++ vector

所以我有一个包含向量的类,该类在另一个向量中添加了一个指向自身的指针。在一个单独的函数中,我有一个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);

编辑: 阅读注释后,我发现buttons数组实际上是空的。 它应该由构造函数填写。

这是在包含头文件的主文件中创建的类实例的示例:

Button BUp({SDLK_w, SDLK_UP});

1 个答案:

答案 0 :(得分:0)

证明我使用的方法是正确的。我通过将函数移到头文件中解决了该问题。