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です。非 const 参照を一時変数にバインドすることはできません。const 参照isFlagを取るように変更する必要があります。

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

参照を使用できない場合はconst、 を作成しQStringてから関数に渡す必要があります。

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

QString上記のすべては、 aが から構築できることを前提としていますが*(myvar +1)、これも一時的なものです。

于 2013-02-28T11:28:07.533 に答える