KAIHATSUGIKEN GROUP

C++ PROGRAMMING LANGUAGE




********************************************************************************
14 参照
ポインタを使って引き数を変更する方法についてはポインタ変数名の前にアスタリスク"*"
をかかなければなりません。
C++では参照という概念があります。
参照とは変数を参照するときに使われる「別名」aliasです。
参照の宣言と初期化をするには変数型の後にアンパサンド記号"&"をかきます。
そして int& alias_name = variable; 
のように別名に対して代入演算子を使います。
プログラム中では参照を引き数として渡すことが出来ます。
それはポインタを使わずに引き数の値を変更できるということを意味します。
参照とは変数の別名、あるいは2番目の名前として機能するため対応する変数の値も
変化して引き数の値の変更を簡単にすることが出来ます。
************
#include <iostream.h>

void main(void)
{
	int number = 501;			//int 型変数numberに501を代入
	int& alias_name = number;		//参照を生成 "&"に注意

	cout << "The variable number contains " 
		<< number << endl;			//number = 501 を代入
	cout << " The alias to number contains "
		 << alias_name << endl;	//生成されたnumberの分身alias_nameを代入

	
	alias_name = alias_name + 500;	//ここでalias_nameに新たに代入計算される

	cout << "The variable number contains " 
		<< number << endl;	//対応する変数numberにも500が加えられる
	cout << " The alias to number contains " 
		<< alias_name << endl;	//新しく代入計算されたalias_nameを出力			
}
************
The variable number contains 501
The alias to number contains 501
The variable number contains 1001
The alias to number contains 1001
********************************************************************************
参照を引き数とする
***************
#include <iostream.h>

void change_value(int '&alias)
{
	alias = 1001;
}

void main(void)						//ここから始まる
{
	int number;					//int型変数numberを準備
	int& number_alias = number;			//number_aliasを作成

	change_value(number_alias);	//参照number_aliasを関数change_valueに渡す
	
	cout << "The variale number contains the value " << number << endl;
}
************
#include <iostream.h>

void change_value(int '&alias)
		//関数change_valueで引き数aliasをint型の値への参照として宣言		
{
	alias = 1001;					//&aliasに1001を代入
}

void main(void)
{
	int number;
	int& number_alias = number;

	change_value(number_alias);
	
	cout << "The variale number contains the value " << number << endl;
}		//number = number_alias = &alias =alias = 1001 として出力
*********************************************