• ベストアンサー

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

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

  • itita
  • お礼率72% (27/37)

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

  • ベストアンサー
  • 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/ を参考にウィンドウクラスを作成することは できたんですが、やはりクラスの設計方法がわかりません。 そこで、ソース等など参考になるものを見つけれなかった場合、オブジェクト指向に関する書籍を購入してみようと 思ったんですが、何かお勧めの本をご存知でしょうか。 書店に行ったのですが、これらに関する本がほとんど 置いてなかったので、ネットを利用して購入しようと 考えています。

関連するQ&A

  • C++ソースからUMLの設計書を作るには

    C++ソースからUMLを使った設計書を起こしたいです。 設計書等は一切ありません。 総ステップ数12万超です。複数のcppファイルに分かれています。 オブジェクト指向に基づいて開発されているので、クラスからクラスへと更には別のcppファイルへと呼び出されていくので、どこから見ていったら良いか悩んでいます。 まずはクラス図から作った方が良いのでしょうか? C++ソースから設計書を起こすには、どこから手を付けたら良いか、アドバイスお願いいたします。

  • C++について

    C++について C++を学ぼうと思って入門書を探しています。 今までにC++、オブジェクト指向はやったことがありません。 C言語は初級と中級の間ぐらいの知識です。現在は独習Cを読んで、理解を深めています。 VC++を理解したいと思って業務(ツール)のソースや構成などを見てもさっぱりでした。 どこから学んでいけばよく分からない状態です。 オブジェクト指向を理解しつつ、C++も習得していってVC++を使えるようになりたいです。 Visual C++〈1〉はじめてのWindowsプログラミング (プログラミング学習シリーズ) が良いと聞いたのですが、C言語を分かっている程度の私が読んで勉強になりますか? もし、他に取っ掛かりやすい本がありましたらお願い致します。

  • C# WPF 初心者向け教本とかサンプルソース

    はじめまして。 VisualStudio2013のC#で業務アプリ開発の仕事をすることになったんですが、昔々、C言語をちょっとやったくらいで、C++も知らず、オブジェクト指向もまるでわかっていません。 買ってきた「ひと目でわかる Visual C# 2013/2012 アプリケーション開発入門」を読んでいるのですが、メニュー画面(トップメニューから業務ごとのメニューへの画面遷移とか)すら作れず、途方に暮れています(今更ながら、泣)。 WPFを前提に書かれた本って少ないですよね? 初心者向けの教本とか、サンプルソースとともに解説されているブログとかあれば教えてください。 よろしくお願いしますm(_;_)m

  • C言語とC++ の違いについて(オブジェクト指向)

    今まで(3年ぐらい)は,ずっとC言語を勉強してきました. C言語だったらある程度のプログラムは書けると思います. ただ,来年からC++ を使わなくてはならなくなってしまい ました... CとC++との間には一体どういった違いがあるんでしょうか? よく耳にするのが「オブジェクト指向か,そうではないか」 ということです. オブジェクト指向...,良く分りません.一体どういう ことなんでしょうか. なるべく詳しく教えていただけると助かります.また参考書 やサイトなどを教えていただいても構いません. よろしくお願いいたします.

  • オブジェクト指向の参考になるよいソース

    オブジェクト指向の設計・プログラミングをしたいのですが、イマイチ要領を得ません。そこで、よいソースを見てそこから何か学べればと思うのですが、参考になるよい設計がなされている小規模~中規模のものはありますでしょうか?(オープンソースものになるかと思いますが) #何をよいとするかは主観で構いません。人それぞれだと思うので

  • PHP 5 で書かれたオープンソース

    PHP 5で書かれたオープンソースのWEBアプリケーションを探しています。 オブジェクト指向でPHPを書く参考にしたいと思っているので、PHP 5の新機能をふんだんに使っていて、多少なりとも規模の大きいものであればなんでもよいので教えてください。よろしくお願いします。

    • 締切済み
    • PHP
  • [参考書]洋書でオブジェクトC++

    趣味でC言語を数年やっています。 現在、C++でのオブジェクト指向でのプログラミングに着手しています。 いくつかの書籍を参考に学んでいますが、和書だけでなく洋書も読みたいと思っています。「C++でのオブジェクト指向」の入門書(洋書)でお勧めのものがありましたら教えてください。 お願いします。

  • JAVAのクラスの考え方は・・?

    JAVAの勉強をしていている学生です。 常々思っていたのですが、クラスの考え方がしっくりきてませんヽ(~-~ よく参考書などで書かれていることで 「クラスは設計図のようなもの、オブジェクトはそこから作成した実体」 「鋳型がクラスでどんどん作れるのがインスタンス」 といった話が疑問でならないのです。 というのも・・クラスの設計って、自分自身をフィールドに宣言したりできますよね。。 でそこから生成して、また自分自身のフィールドに生成して・・とか。 インターフェースを実装したクラスで、、、内部クラスを持ったクラスで、、、ジェネリッククラス、、。 となってくると、最初の考え方では、論理的に無理?私の脳内では変換しきれないです(´;ω;) 多分前提となる考え方が間違っていたり、私の想像力が乏しいだけだと思います。 どなたか、「クラスってこう考えればオブジェクト指向が見えてくる」と表現している本やサイトなどご存じないでしょうか。 一朝一夕で理解しようとは思っていませんので、きちんと参考にして理解しようと頑張ります! 「私的には・・」や「あなたが勘違いしている箇所は・・」といったご意見もぜひお聞きしたいです! クラスかオブジェクト指向かどっちかというより、クラスありきでJAVAのオブジェクト指向が本当に理解できると考えています。参考書やWEBを探してみた限りではやっぱり理解できないです(´;ω;) ちなみにC言語を中学生で始め、プログラミングに触れました。

  • オブジェクト指向とUMLについて

    「オブジェクト指向」と「UML」の勉強をしようと思っているのですが、お勧めの参考書またはWebサイトをお教えていただきたいです。 ※オブジェクト指向については、JavaやC++のような言語についてではなく、オブジェクト指向についてです。 ちなみに私はJavaは経験したことがありますが、正直"オブジェクト指向がなんたるか"はわかっていないです… 現在業務でJavaに携わっていてるので、オブジェクト指向という考え方をこの機にしっかりと学べればと思っています。 UMLはまったく無知です; クラス図やシーケンス図など中身にナニがあるか微妙に知っているだけです…; どちらか片方でも良いので何かございましたら、お教え願います。 …参考書だと電車で読めるので、ちょっとだけ喜びます(笑

  • VBがオブジェクト指向言語でない理由

    一般的にVBはオブジェクト指向ではない(VB7でその方向へ向かう)といわれていますが、実際にVBをさわり始め、いろんな本を読んでみると、 1)クラスが作成でき、構造体と関数を1つにまとめ、メンバ(プロパティ・メソッド)を定義付けできる 2)Implementsステートメントでクラスの継承が出来る と、ある程度のオブジェクト指向言語の要件を備えているように見えます。 といっても私はJAVAもSmallTalkも知らないので、「何が真のオブジェクト指向か」というのを良く判っていないのかも知れないのですが。 しかしC++関連書などを読んでいると出てくるクラスの使用例などはVBのそれと大差なく、なぜクラスの作成もできて、継承も可能なVBがオブジェクト指向ではないのか? という疑問がわいてきました。 JAVAとは何が違うのか? これが出来ないからオブジェクト指向ではないのだ! という理由をご存じの方、回答もらえればうれしいです。