• ベストアンサー

C++で書かれたソースを探しています

C++初心者です。 これから、SDKでオブジェクト指向を前提に 単純なペイント系のソフトを作成したいと思っています。 しかし、どのようなクラスを作っていけば良いのか いまいち頭の中で整理できていません。 また、作れてたとして、オブジェクト同士の関係を どのようにすれば良いかわかりません。 例えばウィンドウに画像を表示させることを 考えたとき、ウィンドウクラスと画像を扱うクラスを 作ったとして、ウィンドウクラスのメンバに 画像を扱うクラスを入れた方がいいのかなど、 そのへんのことがよくわかりません。 そこで、オブジェクト指向で書かれているC++のソースを 見て勉強したいのですが、何か参考となるソースって ありますか。また参考になるURLなどございましたら 教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

特にお勧めの本というのはないのですが どういうふうに構築すればよいかはMFCの継承図を みると参考になると思います。 http://www.microsoft.com/japan/developer/library/vcmfc/_mfc_hierarchy_chart.htm Javaでもそうですが、大規模で汎用的クラス群の場合、 ものすごく抽象的なクラスご大元にあります。 勿論、今回はそのようなクラスを作るわけではないので,必ずしもあてはまるわけではありません。。 先ずアプリケーションに必用な機能を整理してみてください。 そしてそれぞれの機能で共通な機能を結びつけて継承関係やメンバ を設計すればよいかと思います。 グラフィックソフトの画面構成 ・メニューバー ・線描画ボタン ・点描画ボタン ・四角形描画ボタン ・多角形描画ボタン ・終了ボタン とりあえずボタンclassがあったほうが便利だな・・・みたいな 余談ですが、模範になるクラス設計はあっても、 絶対だというクラスの設計方法はありません。 とくに今回の場合、汎用的にする必要はなく自分が使いやすいように特化しても よいわけです。 MFCのソースはさすがに膨大なため見る気も失せますが、 案外、個人で公開されてるクラスって汚かったりしますよ?

itita
質問者

お礼

ご返事ありがとうございます。 >そしてそれぞれの機能で共通な機能を結びつけて >継承関係やメンバを設計すればよいかと思います。 このことを意識しながら、とりあえず失敗してもいいから自分なりにクラスを設計していこうと思います。 ご親切に教えてくださりありがとうございます。

その他の回答 (2)

  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.2

>何かお勧めの本をご存知でしょうか。 #1さんではありませんが 「憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門」 http://www.amazon.co.jp/exec/obidos/ASIN/4881356194/249-2357498-6280306 なんてどうでしょうか。 「デザインパターン」とか「リファクタリング」とかの 本も良いと思います。

itita
質問者

お礼

ご返事ありがとうございます。 >「憂鬱なプログラマのためのオブジェクト指向開発講座―> C++による実践的ソフトウェア構築入門」 amazonで上記の本が紹介されていましたが、 評判良さそうですね。オブジェクト指向に関する本は 一冊も持っていないので、購入してみようと思っています。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

まずSDKから自分でMFCのCWndのような汎用的なウインドウクラスを作るのはかなり大変です。 ウインドウズAPIはコールバック関数が多数あるため クラスとの関連づけが難しいのですが その為にSetPropというAPIが提供されています。 URL:コールバック関数をクラスのメンバとするには? http://techtips.belution.com/ja/vc/0009/ 話はそれますがWTLも便利ですよ? http://lamoo.s53.xrea.com/develop/wtl/wtl.html MFCと違いヘッダのみのテンプレートなので、小回りが利きやすいかも。

参考URL:
http://techtips.belution.com/ja/vc/0009/
itita
質問者

お礼

ご返事ありがとうございます。 実はこの質問をする直前に http://techtips.belution.com/ja/vc/0009/ を参考にウィンドウクラスを作成することは できたんですが、やはりクラスの設計方法がわかりません。 そこで、ソース等など参考になるものを見つけれなかった場合、オブジェクト指向に関する書籍を購入してみようと 思ったんですが、何かお勧めの本をご存知でしょうか。 書店に行ったのですが、これらに関する本がほとんど 置いてなかったので、ネットを利用して購入しようと 考えています。