• ベストアンサー

C言語の次のステップは?

現在、C言語を学習していてコンソールアプリケーションや Web上のCGI等は作れるようになってきました。 次の学習ステップとしてWindowsのアプリケーション作成 か、C++の言語学習にするかを悩んでいます。 C言語でのWindowsアプリケーション開発であれば、SDK(Win32API)に よる開発になると認識しています。この場合であれば特にC++の知識は 不要でしょうか?それともSDKでの開発の場合でもC++の知識は必須に なるのでしょうか? MFCとかを使うのであれば、C++の知識は必須ですよね? あるいはこれからの開発ではオブジェクト指向の知識は必須である ということでC++の学習を経て、Windowsアプリの開発について学習した 方がよろしいでしょうか? 最終的な目標はC/C++にてWindows/Linuxアプリの開発ができるように なりたいと思っています。 当面Windowsアプリを開発するにあたって、C→SDKもしくは C→C++→SDK/MFCのどちらが効率的な学習ステップになるのでしょうか? 皆さんのアドバイスをいただければ幸いです。

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

  • ベストアンサー
  • VirtualT2
  • ベストアンサー率58% (18/31)
回答No.1

悩みますね。MFC or SDKの選択は。 質問を順に、私なりの回答を書いてみます。 「SDK(Win32API)によるアプリケーション開発でのC++知識は必要か?」  C++の知識はあんまり必要ではないと思います。  無くても十分に開発は可能です。  但し、C++で出来ているDirectX等を扱う場合、  クラスを利用するレベルでの知識が或る程度必要かと思います。  そんなに難しいものではありません。 「MFCとかを使用する場合」  C++の知識は必要になります。  クラス構造、生成・消滅・派生・継承・仮想クラス・仮想関数等の概念が  理解できているかといったレベルの知識が  最低限必要になると思います。(殆どか…) 「C→SDKもしくはC→C++→SDK/MFCのどちらが効率」  くどいようですが、私的見解です。 ■SDK(Win32API郡)  SDKの基礎は、Windowsの処理形態を把握する事です。  理解は難しくはありません。その代わり、判りにくいです。  しかし…SDKの難点はやはり、そのライブラリーの煩雑さです。  超巨大煩雑関数ライブラリー郡といっても過言ではありません。  学ぶと言うより、馴れる事です。  処理したい内容をヘルプか書籍等で索引して関数を見つけ  ドコで処理するかを検討し  その関数に必要な関数・変数をまた検索して…  誤作動を起こす場合は、もう一度ヘルプを見るか…ry  …  ま、難しくは無くメンドクサイの一言です。 ■C++→MFC/SDK  無難かと思います。  MFCはWin32API(SDK)をC++(class object)にパッケージしたカンジのものです。  MFCを見本にC++を勉強し理解しながら、MFCも学んで行くのがベストと思います  MFCの構造自体C++でオブジェクト指向(ぽい)ので、  良い勉強にもなります。  実際のクラス構造と実行順序とかデバッカ-で確認しながら  どのようにクラスが挙動(?)してるのか判りやすいと思います。  しかし、C言語からいきなりMFCだと実行区分がわかりにくいとおもうので、  頭に軽く入れるレベルでC++の基礎をざーっと、念頭に置く位の理解してから  MFCを学び始めた方が良いと思いますです。  クラスや関数・変数作成もマウスクリックで出来ますし。  ヘルプも充実してます。  MFCが判らなくなったら、も一回C++の基礎をざーry と、こんなカンジでいかがでしょう? オブジェクト指向については、どっぷりMFCに浸かってみれば段段と判ってくる思います。javaるのも手ですが… と、超私的見解でした。 ちなみに私はというと、 BASIC→Z80/68/86ASM→C&Win32API→C++ →イロイロ と、言うカンジに独学路線でC++とAPIを曲解しつつ自作へたれオブジェクト作りながら、 MFCの便利さ(開発速度)に目からウロコで前が見えない状況を一昔前に味わいました(;; 仕事プログラマーとして進むつもりなら、 MFC/.NET(/java/Rudy)の方が良いですよ。と、老婆心。

noname#77208
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 まずはC++の基礎をおさえ、その後SDK→MFCのステップで 勉強していこうと思います。

その他の回答 (1)

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

>C言語でのWindowsアプリケーション開発であれば、SDK(Win32API)に >よる開発になると認識しています。この場合であれば特にC++の知識は >不要でしょうか?それともSDKでの開発の場合でもC++の知識は必須に >なるのでしょうか? 必須でもなければ不要でもありません。 覚えておいたほうが便利だというところです。 個人的にはMFCより先にSDKを学習した方が良いかと思います。 MFC自体は簡単にいえばSDKをクラスにしたものですが、 MFCに入る前に、とりあえずウインドウ上に絵をかけるぐらいの知識は欲しいです。 またMFCは小回りが効きにくいといった感があります。 MFCを熟知すれば問題ないのでしょうが なんにせよMFC自体が膨大なソースコードですし、 ちょっとイレギュラーなソフトを作ろうとすると躓きます。 結局なんのソフトを作りたいかに依るところがあって MFCの方が効率的な場合もあるし、その逆もあります。 とりあえず、SDKとC++両方を触ってみてやりやすい方から学習すると良いと 思いますよ。C++の知識はSDKでも生かせますし、SDKの知識もC++やMFCで 生かせます。

noname#77208
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 まずはC++の基礎をおさえ、その後SDK→MFCのステップで 勉強していこうと思います。

関連するQ&A