今日のC++
クラス内に3次元の配列を持っている以下のようなクラスに適切なコンストラクタで配列pが与えられているとして
class hoge {
private:
double ***p;
};
operator[]
をオーバーロードしてe[0][0][0]
と書くだけでe.p[0][0][0]
にアクセスできるようにしたいんだけど、多次元配列の扱いはよくわからないなぁ。
スピードを求めるので添え字範囲のチェックとかは搭載しない予定ですが、普通に先頭ポインタを返すだけじゃうまく動かない…と思う。頭が回らないので明日考えます。
ってか世のプログラマさんはこういうのどうやって考えるんだろうね。まだ自分はプログラマ的思考が身についていないので、こんなので悩んでばかりで本質的なところになかなかたどり着けません。
こんなんで将来ちゃんと書けるようになるんかな?と不安になります。続けていればいつかは到達できる(しかもある日突然わかるようになる)とはわかっていても、こういうのは苦しいです。
たとえば、形が全くわからないdouble ***p;
があったとして、これにいきなりp[3][5][2]
とかしたら何バイト目にアクセスすることになるんじゃろ?なんか見当違いなことを言っていますでしょうか?ううん…。
投稿者 | CASPAR003 |
投稿時刻 | 23:37 |
カテゴリー | 雑記 |
コメント | 0 件 |
トラックバック | 0 件 |
記事へのリンク | http://www.caspar003.info/delta/archive/2009/11/02/2337.html |
コメント
- 投稿者
トラックバック
- トラックバック