2007年10月31日水曜日

関数の戻り値で配列の参照を返す(C++)

int型の配列へのconst参照を返す関数

const int (&GetArray())[4] {
 const static int s_array[4] = {1, 2, 3, 4};
 return s_array;
}

はっきり言って、読めません。関数名の後に配列の長さがあったりとか。。。

普通こういう場合はポインタを返すように書くと思いますが、型から「配列の長さ」の情報が失われてしまうという欠点があります。
どうしても戻り値の型に「配列の長さ」を残しておきたいという場合は使えます。

参照元

1 コメント:

匿名 2007年10月31日 9:50  

規則性がわからんよね。。。
後々のことを考えるとtypedefしておいたほうがいいかもしれない。
int (*X(int))[10]; とか
int (*X[10])(int); とか
クイズみたいだね(笑)

  © Blogger template 'Isolation' by Ourblogtemplates.com 2008

Back to TOP