如何在c++ Builder中使两个窗体访问相同的变量



我有两个表单,都包括相同的.cpp文件,有这些全局变量:

static vector<News> allNews;
static vector<user> allUsers;
static admin appAdmin("admin", "adminpassword");
static int userIndex =0;

问题是,当形式ANews对象添加到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变量,这些变量对其他翻译单元不可见。

最新更新