gpt4 book ai didi

c++ - 解决一个全局性的

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:24 25 4
gpt4 key购买 nike

我正在尝试让对象引用一些全局变量(在你开始打我之前因为使用全局变量将它们放入对象中会使其他对象无法访问它,或者需要向方法调用添加多余的参数)例如

主要.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com