0

我想将 QString 中的值分配给 const std::string

QString qfile("some value");

这是 const std::string 变量

const std::string file

我正在使用的代码

file = qfile.toStdString();

上面的代码适用于普通的 std::string 。但是由于关键字'const'存在一些问题。我该如何解决?

4

3 回答 3

7

不要使用赋值运算符来初始化std::string对象,而是直接初始化变量。

const std::string file = qfile.toStdString();

除此之外,请确保您了解编码的QString::toStdString()用途;不像QString,std::string与编码无关(它是一串字节,而不是字符)。

于 2012-06-27T12:27:40.263 回答
1

常量是具有固定值的表达式。

http://www.cplusplus.com/doc/tutorial/constants/

于 2012-06-27T12:27:36.263 回答
0

const您还可以通过复制 的返回值来摆脱toStdString()

QString str("text");
std::string std_str(str.toStdString());
于 2012-06-27T12:57:53.977 回答