/ /クラスからthisへのリファレンスを返す - C ++、リファレンス、リターン、this

クラスからthisへのリファレンスを返します。 - C ++、reference、return、this

私はクラスfooの次のメンバを持っています。

foo &foo::bar()
{
return this;
}

しかし、私はコンパイラのエラーを取得しています。私は間違って何をしているのですか?

コンパイラエラー(gcc):エラー:型 "foo *"の一時的な型からの "foo&"型の非const参照の無効な初期化

回答:

回答№1の23

this ポインタです。だからそれはすべきだ return *this;


回答№2のための7

Naveenが指摘しているように、あなたは戻る必要があります *this.

しかしちょっとしたヒント:コンパイラのエラーが何であるかを知る方法は、別のコンパイラでコンパイルしてより良いメッセージがあるかどうかを調べることです。たとえば、次のように使用できます。 コモーオンライン.

この場合、次のようになります。

"ComeauTest.c", line 7: error: initial value of reference to non-const must be an
lvalue
return this;
^

このケースではそれが良いとは確信していませんが、場合によってはメッセージが改善しています。