如果我将 a 转换std::string
为 aCString
使用类似的东西:
std::string ss("Foo");
CString cs( ss.c_str() );
是CString
复制字符ss
还是简单地复制char*
指针?
我对c_str()
函数的理解是,它返回一个指向std::string
. 因此,在CString
内部使用 this 似乎是一个非常糟糕的主意,因为它们中的任何一个上的任何非常量方法都会使另一个持有的指针无效。
接受 a的CString
构造函数const char*
会将数据复制到其内部结构中。这和这样做是一样的:
CString test = "This is a test"
甚至这个
CString test("This is a test")
文档说字符串将被复制,因此它不会直接操作 std::string 缓冲区。
CString(LPCSTR lpsz);
lpsz - 要复制到此 CString 对象中的以 null 结尾的字符串。