当前位置: 代码迷 >> QT开发 >> QtCreator Mingw编译器有关问题求解 高分
  详细解决方案

QtCreator Mingw编译器有关问题求解 高分

热度:151   发布时间:2016-04-25 03:25:07.0
QtCreator Mingw编译器问题求解 高分
代码1

     QString str1( "Data" );
    ser.Push( str1 );
 
代码2

ser.Push( QString ( "SpectrumData" ) );

ser的Push定义如下

virtual bool Push( QString& strName, int nIndex = -1 );


这两个语句不等价吗,代码1没有错误可以正常运行,代码2直接报错了:
error: no matching function for call to 'QSerializeStream::Push(QString)'
     ser.Push( QString( "SpectrumData" ) );
求解啊
------解决方案--------------------
不一样,去掉引用
------解决方案--------------------
建议写成const QString&
非常方便。
------解决方案--------------------
嗯,这种用法是 C++ 标准不允许的,临时变量不能绑定到非 const 引用。 不过MSVC对这种问题却不报任何错误,非常郁闷。
------解决方案--------------------
QString()返回的是QString类型

push(QString&,int),第一个参试是引用 ,不一致了
------解决方案--------------------
在函数里不能引用临时变量。
  相关解决方案