いつでも医師に相談、gooドクター

これから新しい言語として、C#もしくはC++の勉強をしたいと
考えています。

C#にできてC++にできないこと、あるいはその逆でC++にはできて
C#ではできない。ということがあれば、教えていただけないでしょうか?

感覚としてはC++であれば何でもできるという感じではあるのですが、
C#を使うメリットってどんなことがありますか?
やはり、ビジュアル開発(コントロールのDrag&Dropで画面開発ができる)
の簡単さというところがC#でのメリットでしょうか?

ちなみに私はこれまで、C -> VB -> Java といった順で言語を習得
してきました。

gooドクター

A 回答 (5件)

>C#にできてC++にできないこと


無いでしょう。
基本的にC/C++の場合コンパイラの種類に依りますが
内部にアセンブラを書くこともできますから
C/C++で出来ないことはC#でも出来ません。
(勿論#1さんの言われるように言語レベルの仕様で出来ない事はあります。)

簡単さでいうとC#です。VB6の開発経験があるとのことですが
VC#だとVBのフォームを作成するような感じでインターフェースを
作っていけます。(一応VC++でも可能)

一方C#で出来ないことですが
当然ですがフレームワークに依存しないソフトを作る事が出来ません。
Javaで作ったソフトがJREを必要とするのと同じです。
他にはCPUの特殊な命令(SSEやMMX)を呼び出すとかドライバの開発等も出来ません。

ちなみにVC++でもフレームワークは使えるので
フレームワークのガベージコレクション等を使うことは可能です。
(ただフレームワークを使うならC#の方が簡単です。)
    • good
    • 1

C++にはできてC#ではできない


→やはりC++の資産をそのまま活用できるというのが大きいでしょうか。特にそのような場面に出くわしていないのでしたら、VB,Javaといった今までの道のりから考えて、次はC#かとは思います。
またC++は、未だVC6.0が開発環境として広く使われていますが、今更MFC6.0を学んでも、努力に見合うメリットはないと思います。
    • good
    • 0

何を作るかを決め手から、言語を選べはいいのです。

一つの言語で何でもやろうして遠回りすることのないように、あらゆる言語、ライブラリを使えるようにしておいた方が良いと思います。(深く知る必要はありません。調べながらコードが書ける程度の知識で十分です。)


C# or C++ のお勉強をするなら、C++ & STL のお勉強をお勧めします。分かりやすい本が山ほど出てますし、ネット上にも情報は転がってます。Win32API, MFC, .Net, ATL については、Visual Studio.Net 2005 を待ったほうがいいかもしれません。(Windows OS は現在過渡期なんで・・・。)

Visual Studio.Net をまだお持ちで無いなら、しばらくは、お試し版で試してからの方がいいですね。Visual Studio.Net 2005 が買いです。
    • good
    • 0

C# の次の仕様ではジェネリック (C++ でいうテンプレート) が導入される (同時に CLI も拡張される) んですが....


C# のジェネリックは CLI に強く依存するため, C++ でのテンプレートの特殊化が C# ではできません.
    • good
    • 2

・C#にできてC++にできないこと


言語構造としてプロパティ
自動メモリ管理
javaでいうインターフェースのようなものとかデリゲート

・C++にできてC#ではできないこと
クラスの多重継承
テンプレートクラス

とりあえず思いつくところを書いてみました。
(間違っていたら識者の方訂正お願いします)
いずれにせよ、代替機能でなんとかなるようなものもあるし、
C#やC++も言語拡張(例えばマネージドC++とか)したものや将来的にされるものがあるのであんまり意味はないのかもしれません。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング