K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>「オブジェクト指向再入門」。なるほどー。そうですか。面白かった。ためになった。 > >はじめまして。面白く読んでいただけたようで何よりです。 > >>>※2 もし、board.cの中で「たくさんの盤面」を配列で管理しているのなら、 >>>board_create()の戻り値はintかもしれません。 しかし、戻り値をintにしてしまう >>>と、いざ盤面の数に制限をなくそうとして malloc()による動的確保に切り替えたと >>>き困ります。 逆に、最初から「Boardへのポインタ」にしておけば、 配列で実装し >>>ている場合にも困りません。&board[index]を返せばよいからです。 >> >>ここで、&board[index] の index には何を使うのでしょうか。 >>整数(int)を使うと、引用文二行目の int と同じ制限がかかってしまうと思うのですが。 > >まず、board.cの中で「たくさんの盤面」を配列で管理しているのなら、 >おそらく盤面の数には制限ができることでしょう(回避策は後述)。 >Cの配列は基本的に固定長だからです。 >ただ、その場合でも、board_create()の戻り値をBoard*にしておけば、 >将来的にmalloc()による動的確保に切り替えたとき、利用者側に影響を与えなくて >済む、というのが上の注の主旨です。 >&board[index]のindexは、board.cが内部的に保持しているだけであり、 >アプリケーションには見せません。簡略化して書くとこんな感じです。 > >static Board board[BOARD_MAX]; >static int board_count = 0; > >Board *create_board() { > return &board[board_count++]; >} > >実際にはfree_board(Board *b)も要るので、そういう場合はポインタ比較しながら >ループを回すことになるのでしょう。 > >昔、SunOS4か何かのfopen()が、10個くらいまではFILEの固定長配列の中から >FILE*を返すようになっていたと思います。それ以上オープンするときは動的に >確保するわけです(これが上で書いた「回避策」)。 > >>質問: 「どのオブジェクトに仕事をさせるのか」の具体例は。 >> >>連続的に部分拡大をしていく画像(マンデルブロ集合)を表示する JFrame を沢山作っ >>ているのですが、或る画像の JFrame にアクセスする場合、配列を使う事しか思い浮 >>かびません。( JFrame[] win = new JFrame[100]; // 100: ∞は可 ??? ) > >状況がよくわからないのですが、配列を使う方法でも、 >「この画像のJFrameにアクセスしたい!」と思ったときには、そのインデックスが >わかっていなければいけないわけですよね?] >どうせインデックスを保持しなければならないのなら、代わりにJFrameの参照を >保持しても同じことではないのでしょうか。 > >もし、「すべてのJFrame」をどこかで保持する必要があるのであれば、 >java.util.LinkedListなりを使えばよいと思います。 > >>答えてもらいたいから云うのではないが、「センス・オブ・プログラミング!」と >>「Java謎+落とし穴 徹底解明」の目次を技術評論社サイトで見ましたが、とても良さ >>そうですね。買うしかないか。また日曜プログラムが遅れる(-L-) > >や、どうぞよろしくお願いいたします(_o_) >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!