提问人:user1538798 提问时间:11/15/2023 更新时间:11/15/2023 访问量:62
在 [closed] 周围传递静态成员向量变量
Passing static member vector variable around [closed]
问:
我有以下代码
// ClassA.h
class A{
public:
A();
virtual ~A();
static std::vector<A*> A_list;
// other functions
};
// ClassA.cpp
A::A()
{
A::A_list.push_back(this);
}
这是A类的定义。A_list旨在包含在程序中创建的所有 A 对象
// ClassB.h
class B{
public:
B();
virtual ~B();
create();
// other functions
};
// ClassB.cpp
#include "ClassA.h"
#include "ClassB.h"
B::B()
B::~B()
void B::create()
{
for(auto var: A_list)
printf("msg \n");
}
这是 B 类的简化定义,它使用 A_list(包含创建的所有 A 对象)来执行某些功能(此处未显示,但当前正在打印所有 A 对象)
// main.cpp
namespace d{
A a1;
A a2;
A a3;
};
// main.cpp
int main()
{
B b1;
b1.create();
return 0;
}
我希望控制台终端打印这样的东西
msg
msg
msg
但相反,控制台什么也没打印出来
我正在使用 gcc 11.xx 在 vscode、ubuntu 20.04 中编码。我已经通过在调试器中放置一个断点来完成调试器
A::A_list.push_back(this);
A_list似乎在增加长度,表明物体被推到了它上面。然而,当涉及到
B::创建()
发现A_list为空。
我认为问题出在初始化上,但我不确定如何纠正它们
需要帮助或指针
谢谢
答: 暂无答案
上一个:检测用户是否正在调整文本框的大小
下一个:静态内部类问题
评论
vector
std::vector<A*> A::A_list;
A::A_list
classA.cpp
static inline