使用全局变量Cpp 我是C++新手。以前,我学习了C语言,决定学习C++语言。然而,我发现有些东西很难理解,特别是在使用全局变量时。我写了一个程序,但我错了。当我尝试调试时,我的程序在行中显示错误 item* list = ::array[index].head;

使用全局变量Cpp 我是C++新手。以前,我学习了C语言,决定学习C++语言。然而,我发现有些东西很难理解,特别是在使用全局变量时。我写了一个程序,但我错了。当我尝试调试时,我的程序在行中显示错误 item* list = ::array[index].head;,c++,global-variables,C++,Global Variables,其中项为 class item { public: int key, data; item* next; }; 而array是一个全局变量,定义为 class arrayitem { public: item* head; item* tail; }; arrayitem* array; 编辑:这是我调试程序时得到的结果: 我的建议是,删除所有可变全局变量。常数是可以的,但当你开始改变全局状态时,很难对代码进行推理,并且可能是痛苦的bug的来源。这是值得怀疑

其中

class item
{
public: 
    int key, data;
    item* next;
};
array
是一个全局变量,定义为

class arrayitem
{
public:
    item* head;
    item* tail;
};
arrayitem* array;
编辑:这是我调试程序时得到的结果:

我的建议是,删除所有可变全局变量。常数是可以的,但当你开始改变全局状态时,很难对代码进行推理,并且可能是痛苦的bug的来源。这是值得怀疑的。如果有很多参数,可以将它们封装到一个对象中。您也可以使用成员函数,这样您就不需要将对象传递给函数,只需调用对象上的函数即可。请编辑您的问题以提供一个新的答案。如何初始化
数组
等?为什么新手会阻止你以“正确的方式”进行初始化?如果你一开始就有好习惯,那么以后就不会有坏习惯需要改掉。与第一次学习正确的习惯相比,放弃习惯需要更多的时间。@HoangNam请看。我的建议是,删除所有可变的全局变量。常数是可以的,但当你开始改变全局状态时,很难对代码进行推理,并且可能是痛苦的bug的来源。这是值得怀疑的。如果有很多参数,可以将它们封装到一个对象中。您也可以使用成员函数,这样您就不需要将对象传递给函数,只需调用对象上的函数即可。请编辑您的问题以提供一个新的答案。如何初始化
数组
等?为什么新手会阻止你以“正确的方式”进行初始化?如果你一开始就有好习惯,那么以后就不会有坏习惯需要改掉。与第一次学会正确的习惯相比,改掉习惯需要更多的时间。@HoangNam请看。