• ベストアンサー

CとC++って何が違うのでしょうか?

こんにちは。今までjavaでプログラミングしていたのですが、C言語を使わなくてはいけなくなりました。 そこで本屋さんに行って「初めてのCプログラミング」というのを買いました。それに付いてた「BorlandC++Compiler」というコンパイラをインストールして、プログラムを作成して実行しました。 昔、大学の授業ではコンパイルするとき「cc」、実行するときは「a.out」とした記憶があるのですが、これでは、「bcc」です。 もしかして、この本は、C言語ではなく、C++というCとは異なる高水準言語なのですか? C言語とC++とは全く異なるものなら、このまま、新しい本を買わないとどのような支障がでてくるでしょうか?

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

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

C++言語の本なら、書名に「C++」と書いてます。 お買いになったのはまちがいなくC言語の本です。 そのコンパイラは、C言語とC++言語で共用のものです。 (最近は、多くのコンパイラがそうなっています) C言語のコンパイラとして使えば、正確にCコンパイラとして使えます。 ソースコードの拡張子を.cとするとC言語としてコンパイルして、 .cppとするとC++としてコンパイルします。 また、C++のクラス機能を除けばC言語となるので、 特に区別する必要もないくらいです。 なお、大学の時に「cc」でコンパイルし、 a.outが出てきたとのことですが、 それはUNIX系での一般的な方式で、Windows系では異なります。 C言語というよりOSの違いです。

その他の回答 (3)

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

javaではクラスってあったじゃないですか? 基本的にはC言語にクラスの概念とSTLが追加されたものです。 STLはjavaにはない概念なのでちょっとわかりづらいかもしれませんが 使えなくてもCの知識さえあれば一応プログラムは組めます。 C++の中で普通にCのプログラムもかけるので 問題ないと思いますがC++の本は買った方がいいと思います。 >どのような支障がでてくるでしょうか? 要は効率の問題です。 例えばJavaでは便利だったString等に相当するものは標準Cにはありません。 標準Cで文字列を扱うには、char型の配列にしなければなりませんでしたが C++ではstringというテンプレートが用意されています。

  • onti
  • ベストアンサー率37% (9/24)
回答No.3

2番の方の書いているのでおおむねあっていると思います。 ちょっと、補足するとbccでコンパイルすることになって いるのは、Borland Cのコンパイラを使うようになっている からです。 ccでコンパイルするのは、UNIX-Cとか、まあ、MS-Cとか になると思いますよ。 C言語とC++の違いについては先にかかれている回答で よろしいかと思います。 結局、C言語体系で書くか、C++のオブジェクト指向体系 で書くかの違いで、コンパイラ自体はWindows用であれば Borlandでも、IBM-Cでも、MS-Cでも、よいと思います。

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

簡単に言えば、  C++は、C言語にオブジェクト指向的な拡張を施した言語 ということでしょうか。 こちらをご覧ください。 http://www.yc.musashi-tech.ac.jp/~c-prog/process/No-1/1-001.htm http://e-words.jp/w/C2B2BE8A880E8AA9E.html http://yougo.ascii24.com/gh/07/000716.html

関連するQ&A