
C++初心者です。
これから、SDKでオブジェクト指向を前提に
単純なペイント系のソフトを作成したいと思っています。
しかし、どのようなクラスを作っていけば良いのか
いまいち頭の中で整理できていません。
また、作れてたとして、オブジェクト同士の関係を
どのようにすれば良いかわかりません。
例えばウィンドウに画像を表示させることを
考えたとき、ウィンドウクラスと画像を扱うクラスを
作ったとして、ウィンドウクラスのメンバに
画像を扱うクラスを入れた方がいいのかなど、
そのへんのことがよくわかりません。
そこで、オブジェクト指向で書かれているC++のソースを
見て勉強したいのですが、何か参考となるソースって
ありますか。また参考になるURLなどございましたら
教えていただけると助かります。
No.3ベストアンサー
- 回答日時:
特にお勧めの本というのはないのですが
どういうふうに構築すればよいかはMFCの継承図を
みると参考になると思います。
http://www.microsoft.com/japan/developer/library …
Javaでもそうですが、大規模で汎用的クラス群の場合、
ものすごく抽象的なクラスご大元にあります。
勿論、今回はそのようなクラスを作るわけではないので,必ずしもあてはまるわけではありません。。
先ずアプリケーションに必用な機能を整理してみてください。
そしてそれぞれの機能で共通な機能を結びつけて継承関係やメンバ
を設計すればよいかと思います。
グラフィックソフトの画面構成
・メニューバー
・線描画ボタン
・点描画ボタン
・四角形描画ボタン
・多角形描画ボタン
・終了ボタン
とりあえずボタンclassがあったほうが便利だな・・・みたいな
余談ですが、模範になるクラス設計はあっても、
絶対だというクラスの設計方法はありません。
とくに今回の場合、汎用的にする必要はなく自分が使いやすいように特化しても
よいわけです。
MFCのソースはさすがに膨大なため見る気も失せますが、
案外、個人で公開されてるクラスって汚かったりしますよ?
ご返事ありがとうございます。
>そしてそれぞれの機能で共通な機能を結びつけて
>継承関係やメンバを設計すればよいかと思います。
このことを意識しながら、とりあえず失敗してもいいから自分なりにクラスを設計していこうと思います。
ご親切に教えてくださりありがとうございます。
No.2
- 回答日時:
>何かお勧めの本をご存知でしょうか。
#1さんではありませんが
「憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門」
http://www.amazon.co.jp/exec/obidos/ASIN/4881356 …
なんてどうでしょうか。
「デザインパターン」とか「リファクタリング」とかの
本も良いと思います。
ご返事ありがとうございます。
>「憂鬱なプログラマのためのオブジェクト指向開発講座―> C++による実践的ソフトウェア構築入門」
amazonで上記の本が紹介されていましたが、
評判良さそうですね。オブジェクト指向に関する本は
一冊も持っていないので、購入してみようと思っています。
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/
ご返事ありがとうございます。
実はこの質問をする直前に
http://techtips.belution.com/ja/vc/0009/
を参考にウィンドウクラスを作成することは
できたんですが、やはりクラスの設計方法がわかりません。
そこで、ソース等など参考になるものを見つけれなかった場合、オブジェクト指向に関する書籍を購入してみようと
思ったんですが、何かお勧めの本をご存知でしょうか。
書店に行ったのですが、これらに関する本がほとんど
置いてなかったので、ネットを利用して購入しようと
考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックスのマウスホイー...
-
EclipseでJSPのコンパイルエラー
-
配列の重複する値とその個数を...
-
どこからも呼ばれていない無意...
-
クラスの行数は?
-
java eclipse 型に解決できません
-
main()を持つクラスが2つ以上...
-
複数のクラスで共通した関数を...
-
内部クラスを別ファイルに
-
UMLのクラス図はmain()も含むん...
-
Sub-LVDS規格とは
-
Eclipseで新規クラスを作成時、...
-
string formatについて
-
tomcat上でのpropertiesファイ...
-
ATLとMFCの違いは何でしょうか?
-
CImageクラスをVisualC++6.0で...
-
クラス型配列が派生クラス内フ...
-
javaのコンパイルができません...
-
IPアドレスのクラスAを取得して...
-
私はクラスLINEにまだ入れてな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java eclipse 型に解決できません
-
どこからも呼ばれていない無意...
-
EclipseでJSPのコンパイルエラー
-
そんなにお金がなくても年に1度...
-
複数のクラスで共通した関数を...
-
恋愛
-
dllと同じプロジェクトにする方法
-
UMLのクラス図はmain()も含むん...
-
僕の出身中学校は200人同級生が...
-
配列の重複する値とその個数を...
-
同一パッケージにあるクラスが...
-
IPアドレスの3バイト目の呼び方
-
標準モジュールとクラスモジュ...
-
main()を持つクラスが2つ以上...
-
eclipse でクラスに色
-
共通で使う関数を集めたクラス...
-
VBAもしくはVB6:クラスの中で...
-
Cstring(日本語含む)をcharに...
-
IPアドレスのクラスAを取得して...
-
コンボボックスのマウスホイー...
おすすめ情報