用類用習慣了,直接用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引起的。解決方法如下:

-------------------------------------------------------------------------