C++ 戻り値が参照型の場合の使い方

参照型が戻り値になっている関数は、
あまり見かける事もないかも知れませんが、機能的には存在します。

参照型戻り値を非参照型で受け取る方法

int &menseki(int teihen, int takasa);

void main(void) {
      int d;

      d = menseki(10, 5);

      d = 999;      // 変数dの値のみ変更される
                    // menseki関数のansの値は変更されない
}

int &menseki(int teihen, int takasa) {
      static int ans=0;

      ans = teihen * takasa / 2;
      return ans;
}

この方法は、参照型を使わない戻り値を受け取るのと全く同じです。

非参照型で戻り値を受け取るので、参照としては使えません。

参照型戻り値を参照型で受け取る方法

int &menseki(int teihen, int takasa);

void main(void) {
      int &d = menseki(10, 5);

      d = 999;      // 変数dの値と
                    // menseki関数のansの値が変更される
}

int &menseki(int teihen, int takasa) {
      static int ans=0;

      ans = teihen * takasa / 2;
      return ans;
}

こちらは、参照型で受け取っています。

参照型で受け取るので、参照として使う事ができます。