全球和外部的阶级

时间:2014-02-03 03:45:32

标签: c++ global-variables extern

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

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

extern int myglobalint;

我有一个cpp文件my.cpp

这里我宣布一个班级A

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

1 个答案:

答案 0 :(得分:0)

是的,它会不时出现,特别是在凌乱的代码中。 :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或class成员实际上没有优势 - 但除非它是某种全局设置或标志,如果你想在全局存储状态,你可能需要考虑一下你的设计。

如果你确实需要全局变量,例如,状态或配置真的没有其他地方可以存在,我会选择类静态方法而不是一堆乱的东西。