我有两个表单,都包括相同的.cpp
文件,有这些全局变量:
static vector<News> allNews;
static vector<user> allUsers;
static admin appAdmin("admin", "adminpassword");
static int userIndex =0;
问题是,当形式A
将News
对象添加到vector
时,第二个形式B
似乎正在查看一个空的不同的vector
。
我该如何解决这个问题?
两者都包含相同的。cpp-从不包含.cpp
文件。创建一个.h
文件,内容为:
extern vector<News> allNews;
extern vector<user> allUsers;
extern admin appAdmin;
extern int userIndex;
然后通过删除static
来更新.cpp
文件:
vector<News> allNews;
vector<user> allUsers;
admin appAdmin("admin", "adminpassword");
int userIndex = 0;
将新创建的.h
文件包含到表单中。
如果您将.cpp
文件和static
变量包含到两种形式中,您将得到两个翻译单元,其中每个单元都有自己独特的static
变量,这些变量对其他翻译单元不可见。