Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ visual c中的全局变量++;_C++_Winforms_Visual Studio - Fatal编程技术网

C++ visual c中的全局变量++;

C++ visual c中的全局变量++;,c++,winforms,visual-studio,C++,Winforms,Visual Studio,我一直在研究这个问题有一段时间了。我只是想把一个字符的值从一个类传递到另一个类 在头文件中,我声明了一个变量: extern char variable1; char variable1 = 'N'; 在class1.cpp中,我声明了相同的变量: extern char variable1; char variable1 = 'N'; 在class2.cpp中,我声明了相同的变量:我不初始化它,因为Y/N所需的逻辑在class1.cpp中 char variable

我一直在研究这个问题有一段时间了。我只是想把一个字符的值从一个类传递到另一个类

在头文件中,我声明了一个变量:

  extern char variable1;
char variable1 = 'N';  
在class1.cpp中,我声明了相同的变量:

  extern char variable1;
char variable1 = 'N';  
在class2.cpp中,我声明了相同的变量:我不初始化它,因为Y/N所需的逻辑在class1.cpp中

  char variable1;

我对这将如何工作的假设是,我将通过逻辑将其设置为Y或保留为N,正如在class1中初始化的那样,一旦函数完成,我将单击表单上的按钮转到下一个类,因为它们都具有相同的名称,并且文件名在头文件中带有关键字extern,它将传递va我的想法是错误的,我的想法是错误的,我还是新的VisualC++,所以我想学习。<> >代码> char变量,< /COD>没有<代码> ExtNe/Cuff>不是一个声明,它是一个定义。这意味着你在<代码> Copy2.CPP<代码>和<代码> Calp1.1.CPP<代码>中定义变量。这是非法的。只定义一个变量。.cpp文件。其他.cpp文件应该
#包括包含声明的头,这将使它们能够访问变量。

如果您在class1的cpp文件中声明
extern char variable1;
,并在class2中定义
char variable1;
,您应该能够做您想要做的事情。

我认为我们需要更多详细信息ils,事实上还不清楚当你在class2.cpp中再次声明变量时,你不是有一个构建错误吗?你所要做的就是在class2.cpp中包含头并只定义一次变量(你已经在class1.cpp中这样做了)。我不确定您还需要什么。我一直在读的是,您需要将头文件中的变量声明为extern,然后在计划使用该变量的所有.cpp类中再次声明该文件。只看如何实际传递数据,目前它没有在两个类之间传递。为什么要标记它
winforms
?另外,如果您只是使用
variable1
来表示是/否状态,那么
bool
可能更合适。这是我的问题。我对传递变量的理解不太正确,谢谢大家!@Criel只是想澄清一下-您没有在任何地方传递任何内容。您的数据库中只有一个全局变量传递意味着给函数一个参数,通常比共享全局状态更好。