如何通过也在向量中的指针查找作为类成员的向量的大小
How to find size of vector that is a member of a class through a pointer that is also in a 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});
事实证明我使用的方法是正确的。我通过将函数移动到头文件中来解决此问题。
相关文章:
- 向量成员在管理类指针C++队列时丢失
- C++:更新类的向量成员变量
- C++ 入门 12.1:我可以在类中使用静态向量成员实现 StrBlob<string> 吗?
- 具有向量成员的基类<int>
- C++ 向量::使用类对象迭代器擦除不擦除向量成员
- 无法将类构造函数中新创建的对象复制到 C++ 中的向量成员
- 修改另一个类的向量成员时出错
- 返回对私有向量成员元素的非常量引用是否是一种不好的做法
- 如何在 C++ 中将结构类型向量数据输入到结构向量成员(嵌套结构向量)中
- std::向量成员变量 EXC_BAD_ACCESS
- 如何使用其定义附近的显式长度/值构造函数初始化向量成员变量
- "Empty"数组\向量成员 C++
- 如何使用初始值设定项列表初始化 2D 向量成员
- 如何在类定义中初始化向量成员变量
- 如何初始化结构的向量成员
- 使用向量<向量>成员实例化对象时的隔离错误<int>
- 为向量成员和更新元素指定默认值
- 保持类的向量成员与类实例连续
- C++:在类构造函数中填充向量后,向量成员被销毁
- 通过引用另一个类方法传递向量成员变量