• ベストアンサー

C++を始めるにあたって

これからC++を勉強したいのですが、 ・Macの Xcode ・Winの Microsoft Visual C++ ・Winの Borland C++Builder これらは、何がどう違うのでしょうか。 家ではMac、大学ではWindowsを使っています。 初歩的な質問かもしれませんが、よろしくお願いします。

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

  • ベストアンサー
  • KoHal
  • ベストアンサー率60% (110/181)
回答No.5

質問の趣旨に即して回答します。 まず用語の整理。 1.プログラミング言語  人間がプログラムを記述するために考案された言語。  C/C++のほかにもPascalとかJavaとか色々あります。  それぞれの言語が特徴を持ち、得意な分野、想定された用途が異なります。 2.コンパイラ  プログラミング言語で記述されたプログラムはソースコードと呼ばれます。  このままではコンピュータで実行することは出来ません。  ソースコードはCPUが理解できるマシン語(またはそれに準じる中間言語)に翻訳する必要があるのです。その翻訳するプログラムがコンパイラ。翻訳することがコンパイル。  ま、実際にはコンパイルの前後にプリプロセッサとかリンカが仕事をするのですがそれはとりあえず気にしないことにしましょう。 3.ライブラリ  プログラミングするとき、一から十まで全て自分で書くのは大変ですし不可能です。  実際的にはすでに用意されたプログラムの部品を利用して、それを組合せて新たにプログラムを作ります。  そのプログラムの部品がライブラリ。  C++には規格で定められた、C++でプログラミングする時には何時でも何処でも使える(はずの、例外もありますわね)「標準ライブラリ」と、そうではないライブラリとあります。  後者は有志が製作し無償で配布されているものもあれば、企業が作製し有償で販売されているものもあります。 4.開発環境  プログラミングするのに必要なコンパイラ他のソフトに、あれば便利な色々なソフトと、(これが重要)プログラミングを手軽にしてくれる豊富なライブラリをまとめてパッケージにしたもの。 フリーのものもありますが、大抵は有償、しかも高い(笑。 学生さんならアカデミーパックがあるので御買い得。 さて、漸く本題。 A. Macの Xcode B. Winの Microsoft Visual C++ C. Winの Borland C++Builder どれも開発環境です。A.はMacのアプリケーションを作製するための、B.C.はWindowsのそれです。 どれもC++という同じ言語をサポートしてますので、ソースコードを記述する文法は共通なんですが、使用するライブラリが決定的に違います。 それぞれの開発環境でアプリケーションを開発しようとすればそれぞれのライブラリの使い方を覚えなアカンので、この違いは入門者にとっては無視できません。 まぁ、A.とB.C.でライブラリが違うのは仕方ないんで諦めるしかないんですが、B.とC.で違うのはめんどくさいですね。 しかし、これからC++を学ぶのであれば、まず言語そのものと標準ライブラリを学ぶことをお薦めします。 それをせずに、いきなり開発環境とそのライブラリに突撃すると勉強が大変ですし、他の環境へ移行するときに余計な苦労をすることになります。 MacとWinという2つの環境で勉強するならなおのこと、まずはどちらでも共通して使える標準的な言語機能を勉強して、それからどちらかのアプリケーション開発に乗り出したらと思います。どの開発環境を使うかはそのときに考えれば良いです。 なお、言語と標準ライブラリを学ぶならコンパイラだけあれば勉強は出来ます。コンパイラだけならフリーで配布されているものもあります。

guccho
質問者

お礼

標準ライブラリしか使わなければ、同じソースコードをWinでもMacでもコンパイル出来るということでしょうか。 あと、ライブラリというとMicrosoftで言えばMFCとかいうアレですか。 Win32っていうのは…。 とにかく、それぞれライブラリが違うんですね。 詳しい説明を有り難うございました。

その他の回答 (12)

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.2

開発環境というか、コンパイラが違うと、多分生成されるマシンコードは違うと言うか。 まあ、気に入った物使えばいいんじゃないですか?

guccho
質問者

お礼

ありがとうございます。

noname#69788
noname#69788
回答No.1

WINDOWSとMacを両方ならばJAVAのほうがよいのでは。

guccho
質問者

お礼

大学のほとんどの授業で使用しているC/C++を身につけたいと考えています。 何故JAVAではなく、C/C++を使っているのか疑問ではありますが。 ちなみに画像処理なんかをやっています。

関連するQ&A