我对使用指针和引用感到困惑,并且遇到了一个小问题。
我有一个功能:
bool myObject::isFlag( QString &pArgument) const { }
我正在使用它:
QStringList::const_iterator myQStringList.begin();
[...] && !isFlag( QString( *(myVar + 1)))
我收到一个错误
QString( *(myVar + 1)))
它指定没有找到匹配的函数。
但是我很确定这应该很好......你知道可能是什么问题吗?
最佳答案
在此通话中
isFlag( QString( *(myVar + 1)))
参数是一个临时的QString
。您无法将非常量引用绑定(bind)到临时对象,您需要更改 isFlag
以获取常量引用:
bool myObject::isFlag( const QString &pArgument) const {
如果您无法使用 const
引用,那么您应该创建一个 QString
,然后将其传递给函数:
QString qs( *(myVar + 1));
isFlag(qs);
以上所有内容都假设 QString
可以由 *(myvar +1)
构造而成,这又是一个临时变量。
关于c++ - 从 QString* 到 QString& 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15134175/