c++ ToStdString() 完整案例
时间: 2024-09-18 07:04:22 浏览: 36
`ToStdString()`通常是在C++中处理`std::wstring`和`std::string`转换时使用的函数,特别是在使用Boost库或者某些特定版本的Qt库时。这个函数通常是自定义类型或一些工具类的一部分,将宽字符字符串(wstring)转换成标准字符串(string)。
以下是一个简单的完整案例,假设我们有一个名为`MyClass`的类,它有一个内部存储宽字符串的成员变量`m_wstr`,并提供了一个`ToStdString()`方法:
```cpp
#include <boost/lexical_cast.hpp> // 引入boost库用于字符串转换
#include <string>
#include <wstring>
class MyClass {
private:
std::wstring m_wstr;
public:
// 构造函数
MyClass(const wchar_t* str) : m_wstr(str) {}
// ToStdString() 方法
std::string ToStdString() {
return boost::lexical_cast<std::string>(m_wstr); // 使用lexical_cast进行转换
}
// 其他方法...
};
int main() {
MyClass myObject(L"Hello, World!"); // 创建一个包含宽字符串的实例
std::string str = myObject.ToStdString(); // 调用ToStdString并将结果赋值给std::string
std::cout << "Wide string as std::string: " << str << std::endl; // 输出宽字符串作为std::string
return 0;
}
```
在这个例子中,`main`函数创建了一个`MyClass`对象,并通过`ToStdString()`将其宽字符串内容转换成了`std::string`以便进一步操作。注意`L`前缀表示这是一个宽字符串字面量。
阅读全文