我发现 MFC/ATL CString
类在 Win32 C++ 代码中非常方便;特别是我发现我们可以将 CString
的实例直接传递给 Win32 API 的 LPCWSTR
(即 const wchar_t *
)参数很方便,感谢CString
定义的隐式转换运算符。
相反,当使用 std::wstring
时,需要显式调用 .c_str()
方法。
那么,为什么 STL 字符串类(std::string
和 std::wstring
)需要显式方法调用(c_str()
) 而不是定义一个隐式的 const char*
/const wchar_t *
转换运算符?
隐式转换运算符是否隐藏着严重的陷阱?
最佳答案
无论理论上的问题是什么,我只会指出,在使用 CString 的多年中,我从未被此功能所困扰。便利远大于危险。
关于c++ - 字符串隐式转换运算符到 const char*/wchar_t *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913796/