K.Maebashi's BBS

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

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

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

[1907] Re:Java謎+落とし穴について
投稿者:(ぱ)こと管理人
2015/08/02 13:11:34

>暑中お見舞い申し上げます。 こんにちは。 >『Java謎+落とし穴』で、二つ質問があります。 >見方によっては、各オブジェクトが、間接的にではありますが、それぞれ実行コードへのポインタを持つように思えるのですが、いかがでしょう。 「間接的に」実行コードへのポインタを持つのはその通りですね。 ここは、メソッドが10個あった時、各オブジェクトが10のポインタを持つ必要はないですし、 オブジェクトごとに実行コードへのポインタが書き換わることはない、という意味で 書きました。 (プロトタイプベースのオブジェクト指向だと、実際オブジェクトごとに持っていたり しますし) >・177ページ「draw()メソッドを呼び出す部分はPolylineやCircleにまったく依存しません(その構造体を宣言しているヘッダファイルを#includeする必要がない)」について。 >このdraw()メソッドは、183ページのdrawShape(shapes[i])メソッドと同じでしょうか。ここではmain.cに、各ヘッダファイルをincludeしているように見えます。 ここはわかりにくかったですね。 createPolyline()等は各図形の.hで宣言されているわけで、 各図形をnewするところでは各ヘッダファイルが必要です。 ただ、描画するところ(「draw()メソッドを呼び出す部分」)は、 Polyline.hやCircle.hにまったく依存しません。 (これはJavaにおいても同じことで、newするところは各クラスに依存します)。 この例では、main.cでnewと描画を両方やってしまっているので、 おっしゃるとおり、「main.cでincludeしているではないか」と疑問を持たれるのは わかります。 main.cの描画部分(17~20行目)を、draw.cとか、別ソースに分けておくべきだったかも しれません。 10年以上前の本ですが、ご指摘感謝いたします。
[この投稿を含むスレッドを表示] [この投稿を削除]