相关疑难解决方法(0)

在C++中定义类字符串常量?

我已经看到了这两种风格的代码,我不确定一个是否比另一个更好(它只是风格问题)?你有什么建议可以选择一个而不是另一个.

 //Example1
 class Test {

    private:
        static const char* const str;

};

const char* const Test::str = "mystr";

//Example2
class Test {

     private:
         static const std::string str;

};

const std::string Test::str ="mystr";
Run Code Online (Sandbox Code Playgroud)

c++

41
推荐指数
1
解决办法
4万
查看次数

全局静态const字符串不会被初始化

在Ubuntu上运行c ++.

在configuration.h文件中我有这个(全局):

static const string APP_CONFIG_FILE_NAME = "cfg";
Run Code Online (Sandbox Code Playgroud)

在我的configuration.cpp(顺便说一句是单例,所以配置的构造函数调用加载配置)我这样做:

void Configuration::loadConfiguration() {
    cout<< "config file name "  << APP_CONFIG_FILE_NAME.data();
        load();
}
Run Code Online (Sandbox Code Playgroud)

将从另一个全局调用负载配置:(这是失败的关键点)

Timer t(Configuration::Instance()->timeout);
Run Code Online (Sandbox Code Playgroud)

我看到cost字符串未初始化(空).如果我用char*替换字符串,它按照我预期的顺序初始化.

但是在另一个程序上配置相同的类工作,所以我不知道问题.

还有另外一个问题,但不是因为同样它不是一个全球性的.

c++

3
推荐指数
1
解决办法
2790
查看次数

标签 统计

c++ ×2