暗黙のオブジェクト仮引数 | Programming Place Plus 用語集

トップページ用語集

名称 🔗

解説 🔗

C++ において、メンバ関数のオーバーロード解決を行う際にコンパイラが使用する、ソースコード上には直接現れない仮引数のことです。

メンバ関数が呼び出されるとき、呼び出し元となったオブジェクトが、そのメンバ関数の隠れた第1仮引数として扱われます。

たとえば、あるクラス C のオブジェクト obj があるとして、obj.func(a, b) というメンバ関数の呼び出しがあった場合、コンパイラは func(obj, a, b) として解釈します。ここで第1引数となった obj が暗黙のオブジェクト仮引数です。このC& のように参照型となります。また、メンバ関数が CV修飾子参照修飾子が付加されている場合には、その種類に応じて const C&const参照)や volatile C&C&&(rvalueリファレンス)にも変化します。このような型の変化により、メンバ関数のオーバーロード解決が正しく行われるようになっています。

メンバ関数が静的でない場合には thisポインタが暗黙的に渡されており、これも呼び出し元のオブジェクトを指しています。thisポインタの型は C* const ですが、メンバ関数の CV修飾子によって、const C* constvolatile C* cconst に変化します。


参考リンク 🔗

更新履歴 🔗


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Facebook でシェア X で ポストフォロー
LINE で送る noteで書く rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー
先頭へ戻る