相关疑难解决方法(0)

char*vs cd中的std :: string

std::string什么时候应该使用,什么时候应该char*用来管理charC++中的s 数组?

char*如果性能(速度)至关重要,并且由于内存管理,您愿意接受一些有风险的业务,那么您似乎应该使用它.

是否还有其他需要考虑的方案?

c++ arrays stl stdstring

79
推荐指数
7
解决办法
7万
查看次数

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

我有一些静态const字符串作为我的C++类的私有成员.我知道.hpp中的声明和.cpp实践中的定义(和初始化).在类构造函数中,我调用一个使用这些静态字符串的函数.令人惊讶的是,在构造函数中,字符串保持未初始化(空字符串),这会产生问题.

有人可以指出这里可能出现的问题吗?我一直使用静态const字符串的这种用法,但从未遇到过这种情况.

更新:m_data在utility()中保持为空.我有一个Test类对象作为另一个类的私有成员.

这是我正在使用的一种代码:

// Test.h
class Test
{
public:
  Test();
private:
  void utility();

 static const std::string m_data;
};

// Test.cpp
const std::string Test::m_data = "Data";

Test::Test()
{
utility();
}

void Test::utility()
{
//use m_data here
}
Run Code Online (Sandbox Code Playgroud)

c++ string static initialization const

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

标签 统计

c++ ×2

arrays ×1

const ×1

initialization ×1

static ×1

stdstring ×1

stl ×1

string ×1