0

マルチマップ内のオブジェクトの参照を返すことは可能ですか?これは私が試していることです:

return &this->noteList.find(key)->second;

しかし、私はNon-const lvalue reference to type 'Note' cannot bind to a temporary of type 'Note *'それが可能であるかどうか疑問に思っていたので、もしそうなら、どのように?notelistはマルチマップであり、そのNote中にオブジェクトがあります。

4

2 に答える 2

0

this->noteList.find(key)->secondすでにマルチマップ内のオブジェクトへの参照を提供しています(マルチマップthis->noteListの場合)。

その式の前にアンパサンド(&)を付けると、そのようなオブジェクトへのポインターが得られます(その演算子がオーバーロードされていない場合)

于 2012-11-01T20:02:54.277 に答える
0

次に、他の人がすでに指摘したように、secondアンパサンド()なしで戻ります。&

noteListまたはメソッドがの場合const、戻り値の型も const に変更する必要があります。

const Note &getRef(Note note) const;

トピック外:通常、パラメーターを に変更する必要もありますconst Note &note

const Note &getRef(const Note &note) const;

また

Note &getRef(const Note &note);
于 2012-11-01T19:55:11.800 に答える