怎么在一个工程中定义一些很多文件都需要使用的变量

如何在一个工程中定义一些很多文件都需要使用的变量?
在一个工程中 ,比如 类 class1 class2, 和 class3 class 4这几个类的cpp文件都需要用到变量 int insider; 

现在我做的就是在 class1的cpp文件一开头定义(不写到类里面) : int insider; 然后在其它的几个类的cpp文件的开头写上
extern int insider; 

例如:
class1.cpp
C/C++ code

 int insider; 
class1::class1()
{
  ....

}



class2.cpp
C/C++ code
extern int insider; 
class1::class1()
{
  ....

}


class3.cpp
C/C++ code
extern int insider; 
class1::class1()
{
  ....

}


class4.cpp
C/C++ code
extern int insider; 
class1::class1()
{
  ....

}


但是觉得这样貌似让很多变量都漂浮在类的外面感觉不安全。


然后就想到把这个变量定义为class1的一个成员变量。但是这样一来其它几个类要使用这个变量时还必须在这几个类里面有class1的对象才行,但是如何定义一个class1的对象,然后让class2,class3,class4都拥有这个class1的对象呢?

或者还有其它好的方法吗?

非常感谢

------解决方案--------------------
写一个公共的类
然后将函数权限设为public
然后类的成员变量去访问
------解决方案--------------------


把这个定义都统一写入到一个 define.h 文件。

使用的地方
include "define.h"
------解决方案--------------------
可以试下单例模式。。大致写了下。。

C/C++ code

// CommonDefine.h

class CCommonDefine
{
public:
    static CCommonDefine* GetInstance()
    {
        static CCommonDefine s_Define;
        return &s_Define;
    }

private:
    CCommonDefine() : m_iInsider(0) {}
    ~CCommonDefine() {}

public:
    int m_iInsider;
};

------解决方案--------------------
一般这种情况我是放到main.cc里面弄为全局变量其他地方用extern