c++ - 类中的全局和外部

标签 c++ global-variables extern

如果我将一个类变量声明为 extern 以便它可以访问某些在其他文件中声明的 global 变量会怎么样?这种情况是随时都会出现还是只是一个假设的情况?

假设我有一个头文件 global.h

extern int myglobalint;

我有一个cpp文件my.cpp

这里我声明了一个类A

class A{
    //use that variable here....is it possible
}

最佳答案

是的,它时常出现,尤其是在困惑的代码中。 :D

也许更像 C++ 的风格是将这些类型的变量放在一个类中,例如在 global.h 中:

class Global { // You can do this with 'struct' & omit 'public'
public:
    static int myglobalint;
};

在 global.cpp 中:

int Global::myglobalint = 0xbeef;

使用 extern 或类成员确实没有任何优势 - 但除非它是某种全局设置或标志,否则如果你求助于全局存储状态,你可能需要在设计中考虑一些。

如果您确实需要全局变量,例如,确实没有其他地方可住的状态或配置,我会选择类静态方法而不是一堆外部变量。

关于c++ - 类中的全局和外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519350/

相关文章:

c++ - 按递增顺序枚举代数表达式

c++ - 如何声明 2d std::array

c - 8051 的 sdcc 编译器的奇怪行为

php - Zend Framework 2 设置全局模块变量

c++ - ifstream 相当于 FILE * 的倒带方法

c++ - 如何检测模板参数是否为 noexcept 函数?

global-variables - OpenMP 的全局变量

namespaces - Cython extern 函数从 foo.h 转换为类似模块的对象?

c++ - 错误 'extern' 及更高版本 'static'

c - 外部结构数组