用类用习惯了,直接用C函数操作char*感觉有些不方便。所以用的更多的是std::string/std::wstring.
设想这样一种情形:
有个模块需要封装给其他用户使用,接口中需要处理字符串类型。
那么采用std::string或者std::wstring是否合适呢?
----------------------------------------------
一直以来没有在意这个问题,但注意到有很多种string的实现类,比如MFC的CString,BSTR之类的。另外在使用第三方的SDK中亦有各种 X String。
除去历史因素(哪个时候std::string还没诞生...),为啥不直接用std::string或者std::wstring?
-----------------------
答案之一版本问题。
STL的实现在每个版本的C++ runtime lib中的实现可能是不同的。
比如在用VC10写的程序调用VC9编译的Lib。遇到std::string,采用的是当前版本的stl::string。运行时,就有可能产生异常。
---------------------------------------------
前不久的问题CLR和multi-targeting,便是由于string引起的。解决方法如下:
-------------------------------------------------------------------------