
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
違いか~、簡単に挙げると
①VM: C++ 使わない。C#:.NETのVM(CLI)上で動作
②GC(ガベコレ): C++ 使わない。C#: 使う。
③多重継承:C++: 可能だが使い方が難しい場合がある。C#: 無し。
④OOP: C++: Cに付加する形。C#: OOPしか許さない。
⑤プロパティ、イベント C++: 無し、C#: 有。
C++ は C にクラスを付けてみようという発想から始まった
かなり古い言語。ヘッダファイルで型情報を共有とか
他の言語では廃れてしまったやり方を未だに踏襲してます。
C#は元々ほぼ Java のコピーから出発した言語。
.NET Framework の主力言語で、Java と機能を競って
発展を続けてます。javaと違って RAD なGUIのサポートのため
プロパティやイベント(delegate)なども備えてます。
C# は VM と GC を使うので、組み込み系など、H/Wに近い
レベルの開発は無理。WindowsもC++で書かれていますね。
C++は利用者に高い能力を要求するので、下手なコードを書くと
よくわからない動作をして利用者を困らせます。
たくさんのベストプラクティス身につけないと人に迷惑を
かけやすい玄人向けの言語です。
蛇足:
VC++/CLI は、C++だけど VM/GC を使える C++ で、
NativeとVM用のコードを混在して書ける超変態言語です。
でも、.net と native の間をつなぐのにとても重宝しました。
No.5
- 回答日時:
開発需要にあわせた進化だと思います
C → C++ → C#(C++++)
進化に伴い、
・安全なプログラムを書けるようになってきました
・フレームワーク、パッケージが充実してきてゴリゴリ書かなくてもいろんなことが比較的簡単に実現できるようになってきました
・他の今時の言語、それを取り巻くエコシステムとの協調が楽にできるようになってきました
未だC++、そのエコシステムを使った方がコスト的に有利な開発は沢山あります。ですが、そのようなある意味特殊な開発分野以外はイマドキ、C++を使う必要はありません(と思います)
No.4
- 回答日時:
ざっくり的な回答はNo.1さんがされていますね。
追加して書けば、
・マイクロソフトは、「できるだけC#を使ってほしい!」という意向があります。どーーしてもC++じゃあないとダメって場合だけC++を使って欲しいということのようです。
・C++は、Cで記述するのが難しい複雑なプログラムを記述するために生まれました。Cよりも簡単なように見えるところもあるのですが、実際にはCよりも5倍から10倍も難しいと思います。
「Cがちょっと進化した言語」と甘くみると痛い目を見ます。
なお、STLってうまく使えば、とても役にたつので、C++が嫌いでも、STLが好きになる方がいるのは分かりますね。
日本での業務系のソフト開発では、ソフトの作り易さ、それにマイクロソフトの意向もあってC#が選ばれると思います。
C++を使うことはまず無いと思います。
リアルタイム系、組み込み系となるとC++でしょうけどね。
No.3
- 回答日時:
C#はMicorosoftの.NET技術を基盤とした言語で、C++はそうじゃない言語です。
ざっくりとした違いという意味で。
>気をつけるべきところはありますか?
メモリ管理の考え方とかC#と全然別物なので、一から覚え直しくらいに思ったほうが良いかと。
>コードの書き方としてはC++とCは同じということと考えていいのですか?
C言語も変化しているので、C++自体と別言語としてとらえるのが技術的には正確ですが、まあそんなところで良いのでは。
>C++ は使いやすくなったC言語。
こういういい方は、あまりしないと思います。
No.2
- 回答日時:
> また、C++ は使いやすくなったC言語。
いや、「使いやすくなった」って事は違うんじゃないかな。
むしろある意味「ややこしくなった」C言語、とは言えるかもしれんですが。
世の中、必ずしも「新機能追加!」が「使いやすくなった!」とは同義ではないのです。
> つまり、コードの書き方としてはC++とCは同じということと考えていいのですか?
上手いC++の書き方は「殆どCのコードにちょっとだけC++の書き方を混ぜる事だ」たぁ言われてますけどね。
バベル案内:
http://www.aoky.net/articles/steve_yegge/tour_de …
No.1
- 回答日時:
何だろね。
はて。C#ってC++++のつもりで名付けたらしいんですが(笑)、実際はC++よりはJavaに近いんじゃないの?分からんけど。
・C#ではポインタが隠されてるけどC++だと悪名高いポインタが出まくりである。
・C#はJavaと同様に、仮想マシン(VM)向けにバイトコードを吐き出すコンパイラを持っているが、C++はネイティブコード(いわゆる機械語)を吐き出すコンパイラを用いるケースが多い(必須ではない)。
・C#はJavaと同様に、基本的にはユーザーにオブジェクト指向を強要する。反面、C++はオブジェクト指向も「使える」が、別にユーザーにそれを強要する事なく、C的なフツーの手続き型言語の書き方も可能。あるいは、STLと言う標準ライブラリの一つを使えば、擬似的だが関数型言語な書き方も可能な「マルチパラダイム」の言語である。
ってのがざっくりとした違いかなぁ。ホントざっくりだけど。
> 夏休みに入った今にC++も学ぼうと思っているのですが、気をつけるべきところはありますか?
ゴメン、あんまC++は詳しくないんだ。
でもC++のSTL、ってのは面白いと思う。多分STLを中心に学んだ方がエキサイティングかしらん。
Standard Template Library:
https://ja.wikipedia.org/wiki/Standard_Template_ …
実はSTLって殆どC++から独立してるようなライブラリなんですよ。実はこれ自体でほぼプログラミング言語として完結してると言う。ヘンなライブラリだ。
これは面白いです。
ぶっちゃけ、「C++を好きな人はこの世にはいない」ですが、STLとかテンプレートを大好きな人はこの世にいっぱいいるんですよね(笑)。不思議な現象です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
Excel VBAで文字化けする (英語...
-
コンピュータ用語で使われる"ブ...
-
lispの入門書
-
C++における継続行
-
C言語とhtmlの違いを どな...
-
C言語より後に開発されたプログ...
-
GOTO文がない言語・・・
-
UNITY Float型の接尾辞fって
-
ゲームは何文字のプログラムで...
-
任天堂で使うプログラミング言...
-
【Cか】ノベルゲーム【Jav...
-
パスカルケースの由来。
-
.Net Framework APIがあればMFC...
-
TANDEM言語ってあるんですか?
-
C#で大富豪
-
webbrowserでクリックさせない...
-
パソコン関係の言葉が良く分か...
-
軌道計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムからアイコンファイ...
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
C言語とhtmlの違いを どな...
-
プログラムに書かれる"%"記号の...
-
UNITY Float型の接尾辞fって
-
COBOLで文字タイプを数字...
-
Excel VBAで文字化けする (英語...
-
VCとVC++
-
HTMLとC++で、どんなホームペー...
-
ウェブサイトから特定の文字列...
-
C++における継続行
-
C++ ってなんて読む?
-
順列の内容をすべて表示するプ...
-
プログラムははぜ小文字大文字...
-
【Cか】ノベルゲーム【Jav...
-
VBScriptで引数を省略したい場合
-
ど素人です。7セグメント表示の...
-
.Net Framework APIがあればMFC...
-
VBSとWSHは読み方が違うだけで...
おすすめ情報
また、C++ は使いやすくなったC言語。
つまり、コードの書き方としてはC++とCは同じということと考えていいのですか?