2012-06-27 55 views
0

我想在QString的值赋给一个const的std :: stringQString时,常量的std :: string

QString qfile("some value"); 

这是常量的std :: string变量

const std::string file 

代码我使用

file = qfile.toStdString(); 

上面的代码工作正常的std :: string。但由于关键字'const'有一些问题。我如何解决它?

+3

你不能指定为const – Andrew

+0

周围的任何工作? –

+0

将其设为私人 – Jake1164

回答

7

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

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

另外,请确保您知道QString::toStdString()使用的是什么编码;不像QStringstd::string是编码不可知的(它是一串字节,而不是字符)。

+0

或'const std :: string file(qfile.toStdString());' – stijn

+1

(在这里插入关于最令人头疼的解析的常见注释) –

+0

该变量已被用于代码中。我只想更新其内容。 –

0

还可以获得通过使toStdString()返回值的副本摆脱const的:

QString str("text"); 
std::string std_str(str.toStdString()); 
相关问题