使用C++和MFC。由于我之前主要使用C#,所以通常会对所有字符串都使用string。我将它们用作类成员、方法参数和方法返回值。
现在在C++中,有std::string、CString、char *、LPCTSTR等等。在设计数据成员、方法参数和方法返回值时应该使用哪种类型?易用性很重要,而CString似乎提供了这种易用性,但我的直觉是朝着可移植标准的方向,尽管可移植性在我目前的优先事项列表中并不是太重要。另外,我不喜欢创建字符串缓冲区并将其传递到方法和函数中的C语义。
从立即编码的角度来看,CString可能更容易使用。但总体而言,什么是“高代码质量”的方法呢?
编辑:
我特别关注代码中的接口点(例如,方法参数和返回值)。例如:
Shape::SetCaption(const char *caption) {...}
Shape::SetCaption(CString caption) {...}
Shape::SetCaption(std::string caption) {...}
Shape::SetCaption(std::wstring caption) {...}