在C++中使用字符串最喜欢哪种方式?一个C风格的char
s?还是wchar_t
?CString
,std::basic_string
,std::string
,BSTR
或CComBSTR
?
当然,每个都有自己的应用领域,但无论如何,这是你最喜欢的,为什么?
Zat*_*rus 32
std :: string或std :: wstring,具体取决于您的需求.为什么?
C风格的字符阵列只是在寻找麻烦.你仍然需要偶尔处理它们(这就是std :: string.c_str()的用途)但老实说 - C中最大的危险之一就是程序员用char*做着坏事并且清理干净缓冲区溢出.只是不要这样做.
wchar__t的数组是一样的,只是更大.
CString,BSTR和CComBSTR不是标准的,也不是可移植的.除非绝对强迫,否则避免它 最理想的是,只需在需要时将std :: string/std :: wstring转换为它们,这不应该非常昂贵.
请注意,std :: string只是std :: basic_string的子节点,但除非你有充分的理由不使用std :: string,否则最好还是使用std :: string.真的很好.让编译器在这种情况下处理优化.
std :: string !!
他们称之为"标准"是有原因的.
basic_string是一个实现细节,应该被忽略.
BSTR和CComBSTR仅适用于与COM的interOp,仅适用于互操作时刻.