2007年10月30日

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

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

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

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

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

参照元

Posted by Akihiro at 2007年10月30日 16:57
Comments

規則性がわからんよね。。。
後々のことを考えるとtypedefしておいたほうがいいかもしれない。

int (*X(int))[10]; とか
int (*X[10])(int); とか

クイズみたいだね(笑)

Posted by: hikaru at 2007年10月31日 00:50
Post a comment









Remember personal info?