配列の要素数が固定なら、以下のようにしてもいいと思います。クラスのメンバ変数のint型二次元配列を戻り値にして外部からもたまに見れるようにしたいです。するのが一般的ではないでしょうか?そうでないとせっかくカプセル化した内部情報を外部にさらすことになります。私なら、このような関数はつくろうとは思いません。逆にメンバー変数を外部にさらす必要があるということは、そのクラスでやりたいことが明確に定義できていないということではないでしょうか?もう一度設計に立ち戻ることをお勧めいたします。メンバー関数にしてしまえばクラスの内部データ構造を外部に見せる必要がなくなります。私もarrayをprivateにしている意味が全くないのでやめたほうが良いと思います。それなら、arrayをpublicにしたのと同じです。なんの為にクラスにしているかを再考されたほうがよろしいかと。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。(*a)[5])のようになるのが自然なような気がするんですがこれだとエラーになってしまいます。(*a)[5]){}こっちの方はさっぱりわかりません。(*a)[5])のように展開(typedefは展開ではないと思いますが)されるような気がするんですが何故上手くいくのが分かりません。自分もprivateメンバを外に出したくは無いんですが設計がだめなのか・・・フレンドにするのが一般的なんですね。実際に二次元配列を戻り値にせず、要素を標準出力に出力する方法を書いてみました。0;}どうしても2次元配列を戻り値にしたいのであれば、STLのvectorを使えば、もっと分かりやすく使用することが出来ます。array[i][j]を使って要素をアクセスする。自分もprivateメンバを外に出したくは無いんですが設計がだめなのか・・・フレンドにするのが一般的なんですね。私から見ると、その変数とその変数に関する処理をクラスにしてしまったらダメなのかって気がしますが。すれば、クラスを受渡して処理させることが出来ます。出来るかどうかだけでも検討してみてください。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。9年前みなさんお忙しいところどうもありがとうございました。いろいろな書き方が出きるんだなあと思えて勉強になりました。フレンドはあまり使ったこと無かったんですが使ってみると結構便利なんですね。二次元配列の戻り値もわかりましたし、解決できました。ありがとうございました。foo(void);というのは、fooが「戻り値がint型の関数型」であるという宣言です。fooに関数呼び出し演算子を付けると戻り値の型になるわけです。コンパイラは関数名を元に型を判断しますから関係大アリなのです。foo(void);というのは、fooが「戻り値がint型の関数型」であるという宣言です。fooに関数呼び出し演算子を付けると戻り値の型になるわけです。コンパイラは関数名を元に型を判断しますから関係大アリなのです。関数にも型があるんですね、だから巻き込まれていいんですね。戻り値の型と関数や関数名にはそんな関係があるなんて知りませんでした。(*a)[5])の宣言です。いうのはそういうことだったんですね。初心者なのでコンパイラのしくみまで知りませんでした。入門的なことだけこなして知った気になってたって思います。すごく腑に落ちました。ありがとうございました。ミクプラは自由にリンクできます。