K.Maebashi's BBS

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

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

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

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

>VC++はメソッドの静的コールをしようとすると怒られるので、 「静的コール」というのが何を指しているのかわかりませんが、 staticメソッド以外は、インスタンスがなければ呼び出すことはできないでしょう (Javaと同じです)。 >メソッドを呼び出す場合、そのクラスのポインタをnewしてますが、 >それがマズイ様です。 まず、「クラスのポインタ」が何を指すのか不明です。 Boardなりのクラスの「インスタンスのポインタ」の意味であるとすれば、 「メソッドを呼び出す場合、そのクラスのポインタをnewしてます」 というのは、私がこっちのページに書いた新人君の失敗と同じ失敗を しているように見えます。 http://kmaebashi.com/programmer/object/shigoto.html | そして、とある新人君は、(AWTの)Canvasに線を引きたい、という時、 | その場でCanvasをnewしてそのCanvasに線を引いてくれました。 | もちろんそのCanvasと、実際に画面に貼られているCanvasは違う | Canvasですから、画面に線は表示されず、彼は悩んでいたわけです。 | また別の新人君は、描画した図形を保持する「ShapeCollection」という | クラスについて、画面の再描画のため必要になったところでいきなりnewして | くれました。当然、新たに作り出されたShapeCollectionは空っぽなので、 | 画面には何も描画されませんでしたけど ※4。 手前味噌ですが、一度通して読んでみてはいかがでしょうか。 >クラスのポインタ変数を使用せずにこのプログラムを構築することは >出来るのでしょうか。 インスタンスへのポインタを使わずにこのプログラムを構築することは、 対戦用のBoardを静的に1個だけ持つようにして、先読み用のBoardを スタックに確保するようにすれば、不可能ではないでしょう。 でも、「対戦用のBoardを静的に1個だけ持つ」というのではせっかくの OO言語のメリットを捨てることになるので、あまりお勧めはしません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[396] Re:リバーシゲームのはさみ将棋への改造
投稿者:SFファン
2007/02/20 02:13:25

指摘のあったcppをインクルードするのをやめ、プレイヤーもBoardのポインタを持つ様にしたのですが、メモリリークを起こしてしまってます。 VC++はメソッドの静的コールをしようとすると怒られるので、メソッドを呼び出す場合、そのクラスのポインタをnewしてますが、それがマズイ様です。 クラスのポインタ変数を使用せずにこのプログラムを構築することは出来るのでしょうか。 ご回答の程よろしくお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[395] Re:リンク切れの指摘
投稿者:(ぱ)
2007/02/20 02:13:25

はじめまして。 >「配列とポインタの完全制覇」のページを見ていたところ、 >“技術評論社さんによる書籍案内はこちら”のリンク先が移動しているようです。 ご指摘ありがとうございます。修正しました。 センス・オブ・プログラミング以外すべて貼り替えですね。 # ASPをPHPに切り替えたのか…
[この投稿を含むスレッドを表示] [この投稿を削除]
[394] リンク切れの指摘
投稿者:ふくはらかずろう
2007/02/20 02:13:25

「配列とポインタの完全制覇」のページを見ていたところ、 “技術評論社さんによる書籍案内はこちら”のリンク先が移動しているようです。 http://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1142-2 だったのが、 http://www.gihyo.co.jp/books/syoseki.php/4-7741-1142-2 に、移動したようですね、、、
[この投稿を含むスレッドを表示] [この投稿を削除]
[393] Re:オレンジニュースにて
投稿者:(ぱ)
2007/02/20 02:13:25

>>ところで、「配列とガベージコレクタ」の「配列は参照型である」の説明で、 >>コードと図の配列の添字の値が食い違っているみたいです。 修正しました。 ついで…と言ってはなんですが、[329]で教えていただいた「ほげほっぽ」の件を、 「ほげを考えるページ」に追記しました。すっかり忘れていまして、対応が 遅くなりまして申し訳ありません (_o_)
[この投稿を含むスレッドを表示] [この投稿を削除]
[392] Re:オレンジニュースにて
投稿者:(ぱ)
2007/02/20 02:13:25

>オレンジニュースというサイトで、crowbarが紹介されていました。 > >http://secure.ddo.jp/~kaku/tdiary/20050426.html 情報ありがとうございます…が、さっきから試してますが、あっちのサーバが コケてるようですね。 >ところで、「配列とガベージコレクタ」の「配列は参照型である」の説明で、 >コードと図の配列の添字の値が食い違っているみたいです。 ご指摘ありがとうございます。 すみません、ちょっと今すぐは直せないので、連休に入ったら修正しておきます。 # 私も「1から数える」呪縛から開放されてないようです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[391] オレンジニュースにて
投稿者:kei
2007/02/20 02:13:25

オレンジニュースというサイトで、crowbarが紹介されていました。 http://secure.ddo.jp/~kaku/tdiary/20050426.html > ■ 前橋和弥氏、新プログラミング言語「crowbar」を作る(現在ver.0.2) > http://kmaebashi.com/programmer/devlang/index.html ところで、「配列とガベージコレクタ」の「配列は参照型である」の説明で、 コードと図の配列の添字の値が食い違っているみたいです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[390] Re:感謝
投稿者:タイガー
2007/02/20 02:13:25

>C++ は「必ずしもオブジェクト指向である必然が無い言語」ですからね。 >better C として使っても一向に構わないわけで。 > >template なんかも「オブジェクト指向」とはまったく反対方向からの >generic programming を目指す代物ですし。 > >std::vector<char> v; >std::copy(std::istreambuf_iterator(is), std::istreambuf_iterator(), std::back_inserter(v)); >とかなんとか。 >ジェネリック関数+ジェネリック部品、ってのはオブジェクト指向とは言いがたいし。 なるほど。あまり意識してなかったのですが、genericの機能は、オブジェクト指向とはあまり関係ないのかもしれませんね。 上記のリストのデータをトラバースするのにiteratorを使うのは、少なからずオブジェクト指向的であると思いますが、「genericの機能の部分」がオブジェクト指向であるとは言えないかもしれません。 でも、オブジェクト指向と連携すると強力な機能だと思います。 774RRさんのご指摘のように、オブジェクト指向を意識しない使い方でも、C++はかなり使えそうですね。 逆に私は、例えばCを使うときにはモジュール化を意識して、オブジェクト指向風なプログラミングをしています。
[この投稿を含むスレッドを表示] [この投稿を削除]
[389] Re:感謝
投稿者:774RR
2007/02/20 02:13:25

C++ は「必ずしもオブジェクト指向である必然が無い言語」ですからね。 better C として使っても一向に構わないわけで。 template なんかも「オブジェクト指向」とはまったく反対方向からの generic programming を目指す代物ですし。 std::vector<char> v; std::copy(std::istreambuf_iterator(is), std::istreambuf_iterator(), std::back_inserter(v)); とかなんとか。 ジェネリック関数+ジェネリック部品、ってのはオブジェクト指向とは言いがたいし。
[この投稿を含むスレッドを表示] [この投稿を削除]
[388] Re:感謝
投稿者:タイガー
2007/02/20 02:13:25

>C言語上級PGですが、VC++を使い始め、オブジェクト指向のさわりを勉強して >いる最中ですが、今までなかなか理解できませんでしたが、こちらのホームページを >穴が開くほど見つめて(=読んで)みたところ、一行一行、激しく首を振りながら、 >やっと理解し始めました。同時に、今まで読んでいた入門書、解説書等に腹が立って >きました。ただし、もう、それらの入門書、解説書を読んでもすらすらと読めるよう >になると思います。ありがとうございます。 C++関連の書籍では、オブジェクト指向の考え方を分かりやすく解説した本があまりありません。 どちらかと言うと、文法や実装面での解説の本が多いような気がします。 余計なお世話かもしれませんが、オブジェクト指向の基本を勉強したいのであれば、C++でもJavaでもオブジェクト指向の知識は同じなので、(ぱ)さんの書かれた、「Java謎+落とし穴徹底解明」をお勧めします。この本は、実装は確かにJava言語ですが、オブジェクト指向の基本的な考え方を扱っていると思います。 例えば、「Effective C++」では、オブジェクト指向を体系的に解説していないため、オブジェクト指向の基本を身につけるのは難しいかもしれません。 GoF本でも同様だと思います。 ちなみに、匿名さんが読まれた入門書、解説書は何というタイトルの本ですか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[387] 感謝
投稿者:匿名
2007/02/20 02:13:25

C言語上級PGですが、VC++を使い始め、オブジェクト指向のさわりを勉強して いる最中ですが、今までなかなか理解できませんでしたが、こちらのホームページを 穴が開くほど見つめて(=読んで)みたところ、一行一行、激しく首を振りながら、 やっと理解し始めました。同時に、今まで読んでいた入門書、解説書等に腹が立って きました。ただし、もう、それらの入門書、解説書を読んでもすらすらと読めるよう になると思います。ありがとうございます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[386] Re:hh
投稿者:(ぱ)
2007/02/20 02:13:25

>hh なんでしょう。これ。 テスト書き込みならテスト用掲示板のほうにお願いします。 http://kmaebashi.com/bbs/list.php?boardid=testbbs
[この投稿を含むスレッドを表示] [この投稿を削除]
[385] hh
投稿者:hh
2007/02/20 02:13:25

hh
[この投稿を含むスレッドを表示] [この投稿を削除]
[384] hh
投稿者:hh
2007/02/20 02:13:25

hh
[この投稿を含むスレッドを表示] [この投稿を削除]
[383] Re:エイプリルフール
投稿者:(ぱ)
2007/02/20 02:13:25

>>>この4/1に発表されたPhthonのエイプリルフールネタ >>空白文字の使い方に厳しい「新言語」が出来たのか!と思ってしまうまでした。 修正しました。 ううう。typoをネタにされてしまった… (;_;) 関係ないけど「思ってしまうま」でGoogleすると結構ひっかかりますね。 「思ってしまう。ま、…」ってのも多いですけど。 >新言語ってわけでもなさそうですよ。 > Phthon >http://www.google.co.jp/search?q=Phthon&start=0&start=0&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:ja-JP:official とまあこのように誰にもでもあるポカということでひとつ。
[この投稿を含むスレッドを表示] [この投稿を削除]
[382] Re:エイプリルフール
投稿者:kei
2007/02/20 02:13:25

>>この4/1に発表されたPhthonのエイプリルフールネタ >空白文字の使い方に厳しい「新言語」が出来たのか!と思ってしまうまでした。 > 新言語ってわけでもなさそうですよ。 > Phthon http://www.google.co.jp/search?q=Phthon&start=0&start=0&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:ja-JP:official
[この投稿を含むスレッドを表示] [この投稿を削除]
[381] エイプリルフール
投稿者:774RR
2007/02/20 02:13:25

>この4/1に発表されたPhthonのエイプリルフールネタ 空白文字の使い方に厳しい「新言語」が出来たのか!と思ってしまうまでした。
[この投稿を含むスレッドを表示] [この投稿を削除]
[380] Re:お邪魔しますー
投稿者:hairo
2007/02/20 02:13:25

>使用していただく分にはまったく問題ありません。あのソースのライセンスは、 >NYSL↓と思っていただいて結構です。 >http://www.kmonos.net/nysl/ > >ただし、Webページに乗っているものは、いろいろなバージョンが混在していますから、 >単純に貼っただけでは動かないと思います。その点はご承知おきください。 > レスありがとうございました。 確かに、貼り付けただけでは動きませんね^^; 自分のトコロに合わせてカスタマイズしたら動きだしました。 これから勉強しつつやっていこうと思います。 ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[379] Re:教えてください。
投稿者:(ぱ)
2007/02/20 02:13:25

>M4sugar requires GNU M4. Install it before installing M4sugar or >bison: I/O error >set the M4 environment variable to its path name やや、うちではcygwinが入っているので気付きませんでした。 MinGWを使うなら、おそらくcygwinではなくてMSYSを使うのが普通なのでしょう。 後ほど書き加えておきます。情報ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[378] Re:教えてください。
投稿者:タイガー
2007/02/20 02:13:25

>>m4をインストールして、M4環境変数を設定したらできました。 >前者があれば、後者はたぶん不要です。 >後者(環境変数 M4 を設定)が必要なのは m4 が標準でないところにインストールされている場合。 >cygwin setup で単純にインストールしたら標準ディレクトリに配置されるはずで、 >よって後者は不要のはずです (ウチではそうなっています) cygwinは、インストールしたことなく分からなかったので、 m4を単体でインストールしました。 デフォルトのパスで、C:\Program Files\GnuWin32\bin\m4.exe にインストールされました。 bison.exeも同一フォルダに入っています。 MinGWは、C:\MinGWにインストールしたのですが、この場合 m4をインストールすべき標準ディレクトリは、どこになるのでしょうか? C:\MinGW\binにm4.exeをコピーしても駄目でした。 初心者なので基本的な質問ですいません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[377] Re:教えてください。
投稿者:774RR
2007/02/20 02:13:25

>m4をインストールして、M4環境変数を設定したらできました。 前者があれば、後者はたぶん不要です。 後者(環境変数 M4 を設定)が必要なのは m4 が標準でないところにインストールされている場合。 cygwin setup で単純にインストールしたら標準ディレクトリに配置されるはずで、 よって後者は不要のはずです (ウチではそうなっています)
[この投稿を含むスレッドを表示] [この投稿を削除]
[376] Re:教えてください。
投稿者:タイガー
2007/02/20 02:13:25

>>M4sugar requires GNU M4. Install it before installing M4sugar or >のメッセージを見れば一目瞭然なような気がしますが何がわからないでしょうか。 >Cygwin Setup で m4 を追加インストールしてください。 m4をインストールして、M4環境変数を設定したらできました。 ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[375] Re:教えてください。
投稿者:774RR
2007/02/20 02:13:25

>M4sugar requires GNU M4. Install it before installing M4sugar or のメッセージを見れば一目瞭然なような気がしますが何がわからないでしょうか。 Cygwin Setup で m4 を追加インストールしてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[374] 教えてください。
投稿者:タイガー
2007/02/20 02:13:25

はじめまして。タイガーです。 「プログラミング言語を作る」のページで、Windows版のソースをダウンロードし、MinGW、bison、flexをインストールして、binのパスを追加したのですが、gmakeを実行すると、以下のエラーが出ます。 M4sugar requires GNU M4. Install it before installing M4sugar or bison: I/O error set the M4 environment variable to its path name 環境は、Windows XP SP1で、「bison crowbar.y」を実行すると同様のエラーが発生します。 なぜこのエラーが発生するのですか?回避方法があれば教えてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[373] Re:実体渡し
投稿者:kit
2007/02/20 02:13:25

引用の順序を変更しています。 > ただ、「PlayerがBoardの実体を保持していてはいかんでしょ > う。」といった話をするときには、「実体」またはそれに類 > する言葉が要るのではないかと思っています。 そうですね。 念のために言うと、僕も、実体という言葉に対して(ぱ)さんと 同じ感覚を持っています。 > > Python プログラマで一人、"call by object reference" > > のことを指して "call by object" と呼んでいる例が見つ > > かりましたが、これだと、日本語と英語で意味が逆になり > > ますし。 > > 日本人でも、「オブジェクト==参照」という解釈の人もいる > ようですから、「日本語と英語で意味が逆」になるわけでも > ないような気がします。 以下の松本さんの例もそうなんですね。 > http://www.rubyist.net/~matz/?date=20030730 > | もっとも多くの言語には「オブジェクト」でない「値」も > | ある。またCの例を出すと、構造体はオブジェクトではな > | い。代入によってコピーが発生するからだ。 BASICの文字 > | 列もオブジェクトではない。 > 最初読んだとき、かなり違和感がありました。「参照」と > 「値」の話ならその通りですが、上記の文を読む限り、「オ > ブジェクト」が「参照」とほぼ同義で使われているからです。 まったく同様な違和感があります。 > >http://aspn.activestate.com/ASPN/Mail/Message/python-Tutor/509290 > ざっと読みました。 > | (2) there is no pointer type in Python, so you > | *can't* pass "a reference" to an object > Pythonは(Javaと同様)なんでもかんでも参照だと思っていま > したが、 それで合ってると思います。 > これはどういう意味でしょう。変数への参照が取れないって > ことかなあ。 参照への参照が取れないってことでしょうね。 > # でも「you *can't* pass "a reference" to an 『object』」 > # だしなあ。 > ## 私がPythonについて誤解しているようでしたらご指摘く > ## ださいませ。 上の記事の著者である Tim Peters が言う "object" というの は、松本さんの言う object と同じもの、すなわち我々の感じ るところの「object への参照」のことなので、特に矛盾はな いと思います。 Smalltalk や Ruby など、全ての型が object である言語で育 つと、自然にこういう感覚になるのかもしれませんが、機械語 による実装を見て意味を理解するタイプの人間からすると、 ちょっとついていけない感じですね。 で、我々の感覚でいう「オブジェクトへの参照の値渡し (call by object reference)」は、Tim Peters や松本さんのような 感覚を持つ人にとっては、 実体渡し == "call by object" となるわけです。 結局、以下の懸念は、まったく当たっており、注釈をつけたの は正解だということになると思います。 > おっしゃるとおり、術語としてちゃんと定義されてな > さそうなので、誤解を招く可能性があると思うのです > が。そのために、先の投稿で注釈をつけたわけです。 同様に、 > 参照渡しを実体渡しと読んでいるのはその本(および > その本に言及したWebページ)以外では、私は見たこと > ないです。そんなの広く使われてるじゃん、という方 > は情報よろしくお願いします。 についても、(少なくとも Python の世界では?) 広く使われている と考えた方がいいのかもしれません。Tim Peters 氏は、Python の 世界では結構な有名人のようですし。 以下は余談です。 > >ただ、Java を含む多くの GC つき言語では、参照の値 > >渡しをするわけで、この術語は使えませんね。 > ええと、少なくともJavaやCなら「値渡ししかない」で済み > そうな気がするのですけど。 もちろんそうです。 ただ、C++ でオブジェクトを参照渡しすることと、まあだいた い等価なことは、Java でも当然行なわれていることなわけで、 C++ と Java に関する話をするときに、これを意味する術語が 欲しいように思います。 で、これを "call by object" と呼びたくない派の人間として は、"call by object reference" のように呼びたくなるわけ です。 もっとも google によると "call by object reference" の 用例は230件しかないそうなので、こういう欲求は、非常に マイナーなのかもしれませんが。
[この投稿を含むスレッドを表示] [この投稿を削除]
[372] Re:実体渡し
投稿者:(ぱ)
2007/02/20 02:13:25

>「参照渡し (call/passing by reference)」と「値渡し >(call/passing by value)」が標準的な術語だと思うの >で、言葉としては、これを使うのがいいような気がする >んですが。言語も C++ ですし。 同意します。私自身、「ポインタ完全制覇」でも「Java謎+落とし穴~」でも、 「値渡し」という言葉を使用しています(どこかで「実体渡し」という言葉を 使っているかもしれませんが…)。 ただ、「PlayerがBoardの実体を保持していてはいかんでしょう。」といった 話をするときには、「実体」またはそれに類する言葉が要るのではないかと 思っています。 おっしゃるとおり、術語としてちゃんと定義されてなさそうなので、誤解を 招く可能性があると思うのですが。そのために、先の投稿で注釈をつけたわけです。 >ただ、Java を含む多くの GC つき言語では、参照の値 >渡しをするわけで、この術語は使えませんね。 ええと、少なくともJavaやCなら「値渡ししかない」で済みそうな気がするのですけど。 >Python プログラマで一人、"call by object reference" >のことを指して "call by object" と呼んでいる例が見 >つかりましたが、これだと、日本語と英語で意味が逆に >なりますし。 日本人でも、「オブジェクト==参照」という解釈の人もいるようですから、 「日本語と英語で意味が逆」になるわけでもないような気がします。 http://www.rubyist.net/~matz/?date=20030730 | もっとも多くの言語には「オブジェクト」でない「値」もある。 | またCの例を出すと、構造体はオブジェクトではない。代入によって | コピーが発生するからだ。 BASICの文字列もオブジェクトではない。 最初読んだとき、かなり違和感がありました。「参照」と「値」の話なら その通りですが、上記の文を読む限り、「オブジェクト」が「参照」と ほぼ同義で使われているからです。 >http://aspn.activestate.com/ASPN/Mail/Message/python-Tutor/509290 ざっと読みました。 | (2) there is no pointer type in Python, so you *can't* pass "a | reference" to an object Pythonは(Javaと同様)なんでもかんでも参照だと思っていましたが、 これはどういう意味でしょう。変数への参照が取れないってことかなあ。 # でも「you *can't* pass "a reference" to an 『object』」だしなあ。 ## 私がPythonについて誤解しているようでしたらご指摘くださいませ。
[この投稿を含むスレッドを表示] [この投稿を削除]
[371] Re:実体渡し
投稿者:kit
2007/02/20 02:13:25

話題がそれるので、件名を変更しました。 「参照渡し (call/passing by reference)」と「値渡し (call/passing by value)」が標準的な術語だと思うの で、言葉としては、これを使うのがいいような気がする んですが。言語も C++ ですし。 ただ、Java を含む多くの GC つき言語では、参照の値 渡しをするわけで、この術語は使えませんね。Java と C++ で共通に使える用語としては、「オブジェクト参照 渡し (call/passing by object reference)」と「コピー 渡し (call/passing by copy)」が分かりやすいような 気がします。が、google で探すと、使っている例が少 ないなあ… 特に日本語で「オブジェクト参照渡し」を 使っている例が少ないです。あと、コピー渡しは、値渡 しと同じ意味なので、この対比は実は対称じゃないのも イマイチかも。 「実体渡し」に関しては、google で探して上位に出る サイトでは、「コピー渡し」の意味で使っているサイト ばかりのようですね。でも実体渡しって、日本以外でも 使われている用語なんでしょうか? Python プログラマで一人、"call by object reference" のことを指して "call by object" と呼んでいる例が見 つかりましたが、これだと、日本語と英語で意味が逆に なりますし。 http://aspn.activestate.com/ASPN/Mail/Message/python-Tutor/509290 「実体渡し」を英語に訳すとすると、どうなるんでしょう?
[この投稿を含むスレッドを表示] [この投稿を削除]
[370] Re:お邪魔しますー
投稿者:(ぱ)
2007/02/20 02:13:25

>ソースの半分くらいしか理解できてませんが、読んだ感じだとDBフィールド用意して、あのソースを貼り付けるだけで出来そうなんですが(笑) >使用してもよいでしょうか? 使用していただく分にはまったく問題ありません。あのソースのライセンスは、 NYSL↓と思っていただいて結構です。 http://www.kmonos.net/nysl/ ただし、Webページに乗っているものは、いろいろなバージョンが混在していますから、 単純に貼っただけでは動かないと思います。その点はご承知おきください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[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ページ)以外では、私は見たことないです。 そんなの広く使われてるじゃん、という方は情報よろしくお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[368] Re:リバーシゲームのはさみ将棋への改造
投稿者:SFファン
2007/02/20 02:13:25

前回貼った圧縮ファイルには、圧縮前のフォルダだけ圧縮されていた様です。 たびたびすみません。 http://revolver.at.infoseek.co.jp/hasami-vc.lzh
[この投稿を含むスレッドを表示] [この投稿を削除]