CString graycat = \"Gray\" + \"Cat\";
或者这样:
CString graycat(\"Gray\" + \"Cat\");
事实上,编译器将抱怨上面的这些尝试。为什么呢?因为针对CString 和 LPCTSTR数据类型的各种各样的组合,“ +” 运算符被定义成一个重载操作符。而不是两个 LPCTSTR 数据类型,它是底层数据类型。你不能对基本数据(如 int、char 或者 char*)类型重载 C++ 的运算符。你可以象下面这样做:
CString graycat = CString(\"Gray\") + CString(\"Cat\");
或者这样:
CString graycat = CString(\"Gray\") + \"Cat\";
研究一番就会发现:“ +”总是使用在至少有一个 CString 对象和一个 LPCSTR 的场合。
注意,编写有 Unicode 意识的代码总是一件好事,比如:
CString graycat = CString(_T(\"Gray\")) + _T(\"Cat\");
这将使得你的代码可以直接移植。