为什么我会看到一些使用CStrings不同声明的代码.
有些人使用这种格式
char a_c_string [];
Run Code Online (Sandbox Code Playgroud)
而其他人使用
CString another_c_string;
Run Code Online (Sandbox Code Playgroud)
有区别吗?我发现的所有引用都CStrings像我在第一个例子中所做的那样声明它,我只看到它在论坛上以其他方式完成,人们在这里举例说明.
Lig*_*ica 31
CString既不是C也不是C++类型.它似乎是微软的一项发明,基本上是一种替代方案std::string:
CString对象可以由于连接操作而增长.CString对象遵循"价值语义".将CString对象视为实际字符串,而不是指向字符串的指针.- 您可以自由地替换
CString对象const char*和LPCTSTR函数参数.- 转换运算符可以直接访问字符串的字符作为只读字符数组(C样式字符串).
我建议忽略它,这样:
(a)人们知道你在说什么;
(b)您的代码是便携式的;
(c)你正在编写C++,每个人都可以根据全球公认的ISO C++标准进行合理化,许多人花了很多很多时间来争论这个明确的目的(你知道,而不是一些人在在一家公司办公室的房间).
只有在使用Microsoft Visual C++进行编程时才能使用它,这实质上是有限的.
以防万一是造成混淆的原因:"CString"中的"C"只是MFC所有类的前缀.MFC是Microsoft包装win32 API的C++库.此字符串类与"C字符串"几乎没有关系,"C字符串"用于描述C语言提供的字符串处理功能.C语言仅提供字符串处理函数,该函数对指向字符串的char数组的指针进行操作,并且它们要求最后一个字符是NUL(也称为NUL终止或零终止).请注意,C++本身也有一个字符串类std::string(实际上还有std :: wstring和std :: basic_string模板,但作为初学者,你可以放心地忽略它们).
| 归档时间: |
|
| 查看次数: |
47872 次 |
| 最近记录: |