16 个解决方案
#1
在文件StdAfx.h中定义
#2
全局变量应该在类的头文件中定义!那个类要用这个变量,就在哪个类的头文件中定义。
#3
只要定义的地方,被使用的地方引用的话,就属于全局了。
#4
在文件头部和头文件可以的
#5
不行呀 ,编译总出错的。
warning LNK4006: "int sensibility" (?sensibility@@3HA) already defined in *.obj; second definition ignored
我在MYapp.h或myapp.cpp,或stdafx.h里定义int sensibility全局变量都会出现这种错误呀。因为我这个变量在大金多的类中都要用到,我就全局了,这样也省了不少麻烦,可哪知编译出错呀,快帮忙呀
warning LNK4006: "int sensibility" (?sensibility@@3HA) already defined in *.obj; second definition ignored
我在MYapp.h或myapp.cpp,或stdafx.h里定义int sensibility全局变量都会出现这种错误呀。因为我这个变量在大金多的类中都要用到,我就全局了,这样也省了不少麻烦,可哪知编译出错呀,快帮忙呀
#6
在cpp文件中定义,放在最前面,系统为全局变量在程序开始前分配空间。
#7
search一下就有了,已经有好多人问这个问题了
#8
在CPP中定义一个变量:如: int number;
在要使用这个全局变量的文件的开始部分写上:extern int number;
这样就不会出错了
在要使用这个全局变量的文件的开始部分写上:extern int number;
这样就不会出错了
#9
只要不把变量定义在函数或类的内部,定义的变量就是全局的(static除外).
但这样不便于管理.一个办法是把全局变量定义为CWinApp派生类的public成员
变量.
但这样不便于管理.一个办法是把全局变量定义为CWinApp派生类的public成员
变量.
#10
可能你在一个头文件里定义了以后,却在多个别的头文件里include这个头。这样的话,
#11
programcat2001说的对。就那样定义。你所要定义的那个变量放在.cpp文件的前面,在头文件后面。这个问题好像C语言中说过,谭浩强的C语言编程中说过。在一个文件中说明一个变量,在其它的文件中要调用,可以使用extern关键字。
#12
regarding global variables, as others pointed out that they are not good, you should use them as less as possible. if you do think you have to use global variables, you can do like this:
// put all global variables into a '.cpp' file, for example: 'my_global_variables.cpp'
int my_global_int1;
int my_global_int2;
float my_global_float1;
...
// then write a header file ('my_global_variables.h') like this:
extern int my_global_int1;
extern int my_global_int2;
extern float my_global_float1;
...
you include 'my_global_variables.h' in every file that needs the global variables. when you compile the code, remember to compile and link the 'my_global_variable.cpp' with other files.
// put all global variables into a '.cpp' file, for example: 'my_global_variables.cpp'
int my_global_int1;
int my_global_int2;
float my_global_float1;
...
// then write a header file ('my_global_variables.h') like this:
extern int my_global_int1;
extern int my_global_int2;
extern float my_global_float1;
...
you include 'my_global_variables.h' in every file that needs the global variables. when you compile the code, remember to compile and link the 'my_global_variable.cpp' with other files.
#13
我想你是用AppWizard的吧,这样的话,和前面说的一样,在随便下一个.cpp中定义一个如
int x;
然后在生成的CXXXApp的头文件XXX.h里extern声明一下
extern int x;
就OK了。
一般来说,你所使用的类里都会包括这个XXX.h的吧!
int x;
然后在生成的CXXXApp的头文件XXX.h里extern声明一下
extern int x;
就OK了。
一般来说,你所使用的类里都会包括这个XXX.h的吧!
#14
另外:你将project->setting->link->customize中的force...大上对勾就可以避免你所说的情况,不过相应的error全变为了waring 。但是编译通过了
#15
全局函数该怎样呢?全局变量可以定义在一个自定义的头文件中,然后被包含在文件中,可用extern 来解决重复包含的问题。
#16
对呀,局函数怎样呢?是不是跟全局变量一样呀。
在.cpp里定义函数体。
在.h里用extern
在.cpp里定义函数体。
在.h里用extern
#1
在文件StdAfx.h中定义
#2
全局变量应该在类的头文件中定义!那个类要用这个变量,就在哪个类的头文件中定义。
#3
只要定义的地方,被使用的地方引用的话,就属于全局了。
#4
在文件头部和头文件可以的
#5
不行呀 ,编译总出错的。
warning LNK4006: "int sensibility" (?sensibility@@3HA) already defined in *.obj; second definition ignored
我在MYapp.h或myapp.cpp,或stdafx.h里定义int sensibility全局变量都会出现这种错误呀。因为我这个变量在大金多的类中都要用到,我就全局了,这样也省了不少麻烦,可哪知编译出错呀,快帮忙呀
warning LNK4006: "int sensibility" (?sensibility@@3HA) already defined in *.obj; second definition ignored
我在MYapp.h或myapp.cpp,或stdafx.h里定义int sensibility全局变量都会出现这种错误呀。因为我这个变量在大金多的类中都要用到,我就全局了,这样也省了不少麻烦,可哪知编译出错呀,快帮忙呀
#6
在cpp文件中定义,放在最前面,系统为全局变量在程序开始前分配空间。
#7
search一下就有了,已经有好多人问这个问题了
#8
在CPP中定义一个变量:如: int number;
在要使用这个全局变量的文件的开始部分写上:extern int number;
这样就不会出错了
在要使用这个全局变量的文件的开始部分写上:extern int number;
这样就不会出错了
#9
只要不把变量定义在函数或类的内部,定义的变量就是全局的(static除外).
但这样不便于管理.一个办法是把全局变量定义为CWinApp派生类的public成员
变量.
但这样不便于管理.一个办法是把全局变量定义为CWinApp派生类的public成员
变量.
#10
可能你在一个头文件里定义了以后,却在多个别的头文件里include这个头。这样的话,
#11
programcat2001说的对。就那样定义。你所要定义的那个变量放在.cpp文件的前面,在头文件后面。这个问题好像C语言中说过,谭浩强的C语言编程中说过。在一个文件中说明一个变量,在其它的文件中要调用,可以使用extern关键字。
#12
regarding global variables, as others pointed out that they are not good, you should use them as less as possible. if you do think you have to use global variables, you can do like this:
// put all global variables into a '.cpp' file, for example: 'my_global_variables.cpp'
int my_global_int1;
int my_global_int2;
float my_global_float1;
...
// then write a header file ('my_global_variables.h') like this:
extern int my_global_int1;
extern int my_global_int2;
extern float my_global_float1;
...
you include 'my_global_variables.h' in every file that needs the global variables. when you compile the code, remember to compile and link the 'my_global_variable.cpp' with other files.
// put all global variables into a '.cpp' file, for example: 'my_global_variables.cpp'
int my_global_int1;
int my_global_int2;
float my_global_float1;
...
// then write a header file ('my_global_variables.h') like this:
extern int my_global_int1;
extern int my_global_int2;
extern float my_global_float1;
...
you include 'my_global_variables.h' in every file that needs the global variables. when you compile the code, remember to compile and link the 'my_global_variable.cpp' with other files.
#13
我想你是用AppWizard的吧,这样的话,和前面说的一样,在随便下一个.cpp中定义一个如
int x;
然后在生成的CXXXApp的头文件XXX.h里extern声明一下
extern int x;
就OK了。
一般来说,你所使用的类里都会包括这个XXX.h的吧!
int x;
然后在生成的CXXXApp的头文件XXX.h里extern声明一下
extern int x;
就OK了。
一般来说,你所使用的类里都会包括这个XXX.h的吧!
#14
另外:你将project->setting->link->customize中的force...大上对勾就可以避免你所说的情况,不过相应的error全变为了waring 。但是编译通过了
#15
全局函数该怎样呢?全局变量可以定义在一个自定义的头文件中,然后被包含在文件中,可用extern 来解决重复包含的问题。
#16
对呀,局函数怎样呢?是不是跟全局变量一样呀。
在.cpp里定义函数体。
在.h里用extern
在.cpp里定义函数体。
在.h里用extern