作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试让对象引用一些全局变量(在你开始打我之前因为使用全局变量将它们放入对象中会使其他对象无法访问它,或者需要向方法调用添加多余的参数)例如
主要.cpp
bool firstLoop;
const int dt = 10;
事物.cpp
void thing::Update(Object * thingToUpdate){
if( firstLoop){
...
} else{
// working with dt
}
}
但每次我尝试访问变量时,我都会收到“未声明的标识符”错误我需要将它们标记为 extern 还是其他。
最佳答案
在thing.cpp
中,写入
extern bool firstLoop;
请注意,同样的技巧对 dt
不起作用,因为它具有内部链接(因为它是一个const 内置类型的变量)。
通常,您应该有一个头文件,您可以在其中声明(使用extern
)需要从任何地方访问的变量,以及另一个源定义这些变量的文件。内置类型的常量变量应该在头文件中定义,或者它们的链接应该通过相同的extern显式地external> 关键字。然后头文件应该包含在任何需要访问的地方。示例:
//Globals.h
extern char ec;
extern const char ecc;
const char cc = 'a';
//Globals.cpp
char ec /* = 'b'*/;
extern const char ecc = 'b';
//no need to do anything with cc
关于c++ - 解决一个全局性的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113518/
我是一名优秀的程序员,十分优秀!