用類用習(xí)慣了,直接用C函數(shù)操作char*感覺有些不方便。所以用的更多的是std::string/std::wstring.
設(shè)想這樣一種情形:
有個(gè)模塊需要封裝給其他用戶使用,接口中需要處理字符串類型。
那么采用std::string或者std::wstring是否合適呢?
----------------------------------------------
一直以來沒有在意這個(gè)問題,但注意到有很多種string的實(shí)現(xiàn)類,比如MFC的CString,BSTR之類的。另外在使用第三方的SDK中亦有各種 X String。
除去歷史因素(哪個(gè)時(shí)候std::string還沒誕生...),為啥不直接用std::string或者std::wstring?
-----------------------
答案之一版本問題。
STL的實(shí)現(xiàn)在每個(gè)版本的C++ runtime lib中的實(shí)現(xiàn)可能是不同的。
比如在用VC10寫的程序調(diào)用VC9編譯的Lib。遇到std::string,采用的是當(dāng)前版本的stl::string。運(yùn)行時(shí),就有可能產(chǎn)生異常。
---------------------------------------------
前不久的問題CLR和multi-targeting,便是由于string引起的。解決方法如下:

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