• 締切済み

C#とC++

Windowsフォームアプリケーションをつくるにあたって、C++とC#の勉強をし始めましたが、どちらも勉強する必要はありますか? また、一方でいいというなら、どちらがいいですか? 両方なら、なぜ両方勉強したほうがいいですか? 質問責めになり申し訳ないですm(_ _)m 良かったら回答お願いします(つд`)

みんなの回答

回答No.6

トップレベルウィンドウに至るまでフォームデザイナがサポートしてくれるので、当面はVisual C#で良いと思いますよ。 興味が湧いたら.Netのソースを見てみるなど。まあ、それに関しては物好きの領域なので得られるものがあるかどうかは別になります。 ウィンドウメッセージはイベントと言う形で取り扱うのが.Netですが、全てのウィンドウメッセージに対応しているわけではありません。 WndProcメソッドをオーバーライドして自力でウィンドウメッセージ処理を行い、WIN32APIをPInvokeするようになって自信がついたら、C++とWIN32APIでWindowsアプリケーション作成を学習してみるのが良いでしょう。 その方が飲み込みは格段に早いと思います。

参考URL:
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.wndproc(v=vs.110).aspx
  • sygh
  • ベストアンサー率76% (42/55)
回答No.5

ネイティブC/C++よりも先にC#やJavaを学んだ人は、結構な率でメモリ管理がずさんになります。 スタックとヒープの違いを理解していないまま、あるいは「メモリーリーク何それ食えんの」状態でC/C++を始めると、どうしても無駄にmalloc()/newしてヒープを使おうとしたり、free()/deleteによるヒープの破棄を忘れたりとかしやすいです。 プログラミングに慣れることが目的だったり、データベース連携やWeb開発、あるいは細やかな制御や実行速度よりも生産性を重視する開発が目的だったりするならば、C#を先に学んで、面倒なメモリ管理は全部ガベージ コレクタのようなシステム任せにするという手もありますが、僕はC/C++のような(ある意味)原始的な言語を先に勉強しておいたほうが、後発言語であるC#(というか.NET)のメリット・デメリットを強く感じられるようになると思います。 あれこれ手を出すのは確かにお勧めしませんが、プログラム言語はそれぞれ得意分野があるし、ある言語を習得する際に得た知識が、別の言語を学ぶときに役立つことがよくあります。僕はC言語の習得後にDelphiでオブジェクト指向やRADを勉強する回り道をしたおかげで、C++とC#の習得が比較的スムーズに進んだ経験があります。 なお、C++/CLIは、ネイティブC++とC#の両方をそれなりに使える人でないと、使いこなすのは難しいと思います。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

C++のフォームアプリってのは従来からC++で組んでいる人のための物なので、初心者ならC#だけの方が良いと思います。 仕事にするなら両方できるに越したことはないですが、C++はフォームでは無くMFCやWin32APIを扱えるようになれないと両方やっている意味が無いと思います。

回答No.3

「Windowsフォームアプリケーション」であればC#の方が簡単です。C#を勉強すればよいと考えます。 C#で書かれたプログラムは、ほぼ機械的にC++のWindowsアプリケーションに書き換えができます。 ただ、CPUの使用時間が数秒を超えるような、数値計算などの処理では、C#の場合に配列の添字範囲検査が常に行われるために処理時間が余計にかかってしまいます。  プログラムをC#で作っておいて、処理時間の長さが気になるようなら、C++に書き換えるというのをお勧めします。その時にC++を勉強すればよいでしょう。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

両方学ぶ意味は、それぞれに特徴が違うから。 例えば、.NETを使わないアプリを作ろうと思ったら、C#では無理でC++が必要になります。 ただ、名前は似ていますが、二つはまったく別の言語です。 「きちんと分けて理解でき、混乱しない」という自信が無いなら、「同時に」勉強するのは止めておいた方がいいと思います。

  • morchin
  • ベストアンサー率16% (212/1281)
回答No.1

C#の方が良いと思います。敷居が低いので。 両方勉強する必要はないと思います。

関連するQ&A