C++;全局配置类或源对所有应用程序可见? 这是C++应用程序设计中的一个问题。 假设我喜欢使用中心配置类,我应该采用哪种方式: 在构造函数中设置带有配置的as类,每个应用程序对象都带有 保持此配置对象引用(指针) 作为需要此配置的每个类中包含的简单源文件

C++;全局配置类或源对所有应用程序可见? 这是C++应用程序设计中的一个问题。 假设我喜欢使用中心配置类,我应该采用哪种方式: 在构造函数中设置带有配置的as类,每个应用程序对象都带有 保持此配置对象引用(指针) 作为需要此配置的每个类中包含的简单源文件,c++,config,C++,Config,在配置文件中,应该是枚举、结构、原语类型这里单例是一个很好的选择。例如: class Config { Config() {} //The constructor is private. static Config * instance; void initialize(); //Creates instance. public: static get() { if (!instance) { ini

在配置文件中,应该是枚举、结构、原语类型

这里单例是一个很好的选择。例如:

class Config
{
    Config() {} //The constructor is private.
    static Config * instance;
    void initialize(); //Creates instance.
public:
    static get()
    {
        if (!instance)
        {
            initialize();
        }
        return instance;
     }
};

您需要将其放在头文件中,并将此头文件包含到所有使用配置的文件中。您还需要在单个CPP文件中定义静态变量(通常为C++静态类变量)。这就是链接器的用途。你是什么意思,你能详细说明一下吗?执行类似于
#include
的操作意味着每个其他源文件都会有该文件中定义的任何变量和函数的重复定义。这可能会在链接时导致问题。如果您想要一个全局变量,请在头文件中声明它,并在所有源文件中包含它,但只在它自己的源文件中定义一次。为什么要包含cpp文件?我只想在正确的位置编写全局配置way@Wyzard关于第二个选项,您可以在源文件中定义全局变量,然后使用extern仅在头文件中声明此变量。