我是C++和Qt的新手。我用Qt Creator玩了几天,让我印象深刻的是GUI组件只接受
我的问题是,如果
有人能解释一下这不是重复造轮子的原因以及如何帮助实现跨平台吗?
const QString&
而不是string
或std::wstring
。为了保持一致,我一直尝试从大多数函数调用中接收和返回QString
,然而我发现自己经常需要转换为std::string
以使用大多数标准库设施。我的问题是,如果
std::string
是标准库的一部分,那么QString
有什么作用呢?我猜这对于已经使用Qt并且不想依赖于#include <string>
的人会很有好处,但老实说,如果您想在应用程序中做任何有用的事情,你将需要std::string
。(特别是对于QChar
,因为char
是内置类型。)有人能解释一下这不是重复造轮子的原因以及如何帮助实现跨平台吗?
std::wstring
和wchar_t
(我相信是UTF-16),所以我不认为这足以证明需要创建一个全新的字符串类。 - James Kostd::string
是那些在课堂外就毫无意义的东西之一。它完全不可移植,如果你想做除了简单地保存字符串以外的任何事情,它就没有用处了。std::string
是C++标准化努力的一个不太成功的产物。就像其他C++容器一样非常好用,但是字符串却没什么用处。如果你正在从C的strxxx
函数进行移植,那么使用它还是有意义的,但也仅限于此。 - Kuba hasn't forgotten Monica