C++变量重定义
我有一个文件:
variableinclude.h
#ifndef _variableinclude_h_
#define _variableinclude_h_
AClass* variable1;
int* variable2;
#endif
但我将此文件包含在另外两个不同的文件中:
- atest1.h
- atest2.h
问题如下:变量重新定义。
如何避免这种情况???
I have a file:
variableinclude.h
#ifndef _variableinclude_h_
#define _variableinclude_h_
AClass* variable1;
int* variable2;
#endif
But I include this file in another two different ones:
- atest1.h
- atest2.h
The problem is the following: variable redefinition.
How to avoid that???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编辑2:
欢迎来到ODR
编辑1:
在头文件中将变量设为extern。
在任何 cpp 文件中定义它们一次且仅一次,例如在命名空间范围的 main.cpp 中。
EDIT2:
Welcome to ODR
EDIT 1:
Make the variables extern in the header file.
Define them once and only once in any cpp file e.g. in main.cpp at namespace scope.