C++:ポインタの概要(2)>参照について – 関数から参照を返す

CやC++において重要なポインタに関連する機能である参照についてのメモ。
ここで言う参照とは、変数とは別の名前で機能する暗黙的なポインタのことで、参照とポインタは別のものなので注意。

参照について(2)

参照には次の3つの用途がある。

参照の3つの用途

  1. 参照は関数に渡すことができる
  2. 関数から参照を返すことができる
  3. 独立した参照(独立参照)を定義することができる(※)

今回は2番目の「関数から参照を返すことができる」についての説明。
※3つ目の独立した参照に関しては一般的ではないため説明は割愛する。

関数から参照を返す

サンプルコード
#include <iostream>
using namespace std;

// グローバル変数宣言
int a;

// プロトタイプ宣言
int &myfunc();

int main(int argc, const char * argv[])
{
    myfunc() = 10; // myfunc() の返す参照に10を代入
    
    cout << a << "\n";
    
    return 0;
}

// int型の参照を返す
int &myfunc()
{
    return a; // aへの参照を返す
}
[/code]
</dd>
</dd>
<dt>結果</dt>
<dd>
[code]
10

補足説明

  • myfunc() は参照を返す。
  • myfunc() を左辺で使用すると myfunc() の戻り値である参照に対して代入が行われる。
  • 参照を返す場合には変数のスコープに注意する。

まとめ

参照が便利であることは理解できるが、ここら辺からややこしく感じてしまう。独立参照に関しては一般的ではないため、存在だけ知っておくだけでよい。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから

Related Contents

Pickup Contents