无法访问在类外声明的静态const变量

时间:2017-04-06 01:17:09

标签: c++ variables static segmentation-fault const

我在 ConfigureManager.h 类声明之前声明了 static const变量,如下所示:

static const std::string CONFIGURE_FILE_PATH = "./abc.conf";
class ConfigureManager: private boost::noncopyable
{
...
};

稍后当我尝试从 ConfigureManager.cpp 类方法访问它时,它会给我分段错误错误。

#include "ConfigureManager.h"
void ConfigureManager::xyz()
{   
    std::cout << "configureFilePath " << CONFIGURE_FILE_PATH << std::endl;
}

我在ubuntu环境中使用g ++编译器。

2 个答案:

答案 0 :(得分:0)

我没有插入,编译和运行代码的问题。该字符串已发送到控制台。发布错误消息或更多代码...

答案 1 :(得分:0)

不确定您使用的是哪个版本的g ++,但是有没有理由不在头文件中将其定义为静态const char *,然后在cpp中将其定义为“./abc.conf”?

如果是c ++ 11,您可以使用initalizer列表在头文件中定义它。     static const std :: string CONFIGURE_FILE_PATH = {“。/ abc.conf”};