如果我使用以下内容将std::string
转换为CString
std::string ss("Foo");
CString cs( ss.c_str() );
CString
是否会复制ss
中的字符,还是只复制char*
指针?
我对c_str()
函数的理解是它返回一个指向std::string
所拥有的字符数组的指针。所以让CString
在内部使用这个似乎是一个非常糟糕的主意,因为任何一个非常态方法都会使另一个中的指针无效。
答案 0 :(得分:2)
采用CString
的{{1}}构造函数会将数据复制到其内部结构中。这与此相同:
const char*
甚至这个
CString test = "This is a test"
答案 1 :(得分:1)
答案 2 :(得分:1)
documentation表示将复制字符串,因此不会直接操作std :: string缓冲区。
CString(LPCSTR lpsz);
lpsz - 要复制到此CString对象中的以null结尾的字符串。