2

我对使用指针和引用感到困惑,我遇到了一个小问题。

我有一个功能:

bool myObject::isFlag( QString &pArgument) const { }

我正在使用它:

QStringList::const_iterator myQStringList.begin();

[...] && !isFlag( QString( *(myVar + 1)))

我收到了一个错误

QString( *(myVar + 1)))

它指定没有找到匹配的函数。

但是我很确定这应该很好......你碰巧知道可能是什么问题吗?

4

1 回答 1

4

在这次通话中

isFlag( QString( *(myVar + 1)))

争论是暂时的QString。您不能将非常量引用绑定到临时对象,您需要更改isFlag以获取 const 引用:

bool myObject::isFlag( const QString &pArgument) const { 

如果你不能使用const引用,那么你应该创建一个QString,然后将它传递给函数:

QString qs( *(myVar + 1));
isFlag(qs);

以上所有假设 aQString可以由 构建*(myvar +1),这又是一个临时的。

于 2013-02-28T11:28:07.533 回答