1、参照呼出しと参照パラメータ
関数に値を送る場合の
・値渡し
・参照渡し
・ポインタ渡し
の違いについて理解しましょう。
参照パラメータは対応する引数のエイリアス(別名)といいます。
使い方は、関数の引数で次のようにします。
void setValue(double p); // 値渡し
void setValue(double &p); // 参照渡し
void setValue(double *p); // ポインタ渡し
実際に、値渡しと参照しで行ってみます。
main()
{
int x=2, z=4;
printf( "x = %d", sequareByValue(x) );
printf( "z = %d", sequareByReference(z) );}
int sequareByValue(int a)
{
return a *= a ; // 呼び出し側の引数は変更されない
}
int sequareByReference(int &a)
{
return a *= a ; // 呼び出し側の引数は変更される
}
----------- 出力 -------------------------------
x = 4
x = 2
z = 16
z = 16
------------------------------------------
参照渡しの場合は、値が変更されていることが確認できました。
2、 関数テンプレート
プログラムでは、内部処理は同じだがデータ型が異なる関数が頻繁に出てきます。
その時に、テンプレートを使うと便利です。
template <class X> void myfunc(X data) { cout << data * 2 << '\n'; }
myfunc(10);
myfunc(1.052);
----------- 出力 -------------------------------
20
2.104
------------------------------------------
テンプレートについては、参考URLを一読をすると、もっと詳しくかいてありますので、理解できると
思います。
【参考URL】
http://homepage2.nifty.com/well/Template.html
0 件のコメント:
コメントを投稿