我对使用指针和引用感到困惑,我遇到了一个小问题。
我有一个功能:
bool myObject::isFlag( QString &pArgument) const { }
我正在使用它:
QStringList::const_iterator myQStringList.begin();
[...] && !isFlag( QString( *(myVar + 1)))
我的
出错了QString( *(myVar + 1)))
指定找不到匹配函数。
但是我很确定这应该是好的......你碰巧知道可能是什么问题吗?
答案 0 :(得分:4)
在此次电话会议中
isFlag( QString( *(myVar + 1)))
参数是临时的QString
。你不能将非const引用绑定到temporaries,你需要更改isFlag
来获取const引用:
bool myObject::isFlag( const QString &pArgument) const {
如果您不能使用const
引用,则应创建QString
,然后将其传递给函数:
QString qs( *(myVar + 1));
isFlag(qs);
以上所有假设QString
可以从*(myvar +1)
构建,这又是一个临时的。