K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[369] Re:リバーシゲームのはさみ将棋への改造
投稿者:(ぱ)
2007/02/20 02:13:25

>http://revolver.at.infoseek.co.jp/hasami-vc.lzh  まず、うちにはVC++をコンパイルする環境はないですし、デバッグまで するつもりもないので、ざっと眺めた感想ですが。  BoardがBoard.cppで定義されていて、#include "Board.cpp"してるとかは さておくとしても、PlayerがBoardの実体を保持していてはいかんでしょう。 Playerがふたりいるとき、それぞれがBoardを抱え込んでいては、ゲームに なりません。  先読みのときBoardをヒープにclone()するのなら、以後それはポインタで 持ち歩いたほうがよさそうに思うのですが、実体で引数渡ししていますし。 Boardの中のcellは、実体で持ってよさそうですがポインタで保持してますし、 にもかかわらずBoardにコピーコンストラクタがありません。  それぞれがaccess violationの原因になるかどうかはさておき、 C++を使うのなら、ポインタと実体の区別を意識するのが重要だと思います。 Javaにはポインタしかないので、Javaから移植するのなら、なんでもかんでも ポインタにするのが楽かもしれません(メモリリークを起こしそうですが)。 なお、ここでは「実体」という言葉を、「ポインタではないデータそのもの」 という意味で使っています。 以前読んだC++本では、引数の参照渡しを「実体渡し」と呼んでてびっくりしました。 「コピーではなく、それそのものを渡す」という意味で「実体渡し」なんだろうと 思いますが、一般的かなあ… 私のように「ポインタではないデータそのもの」の意味で「実体」という言葉を 使うのもさほど一般的ではないかもしれませんが、参照渡しを実体渡しと読んでいるのは その本(およびその本に言及したWebページ)以外では、私は見たことないです。 そんなの広く使われてるじゃん、という方は情報よろしくお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]