参照型が戻り値になっている関数は、
あまり見かける事もないかも知れませんが、機能的には存在します。
参照型戻り値を非参照型で受け取る方法
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;
}
こちらは、参照型で受け取っています。
参照型で受け取るので、参照として使う事ができます。