• ベストアンサー

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)

  • dynamics
  • ベストアンサー率0% (0/2)
回答No.13

>何がどう違うのでしょうか ( Microsoft Visual C++ / Borland C++Builder ) 大雑把な違いは、 ・ソフトを作る労力 ( VC++ >> C++ Builder ) ・商品価格 ( VC++ > C++ Builder ) だと思います。 ※ Xcodeは、残念乍知りません。

guccho
質問者

お礼

>ソフトを作る労力 ( VC++ >> C++ Builder ) そうなんですか。理由がよく分かりませんが。 有り難うございました。

  • suseimei
  • ベストアンサー率35% (17/48)
回答No.12

No11アドバイスに補足いたします。この種のアドバイスはいろいろあり、統一されるようなことはないのが現状です。ときには、激論になってしまう悲劇もあるようですが、参考のためにコメントします。 >質問者さんが、C++はこれから勉強するけれども、他のプログラミング言語 > の経験があり、そういったことが既に分かっているのであれば、何の問題 > もないと思います。 まさにおっしゃるとおりです。学習を始める前提知識といえるものですが、前提知識を身に付けるのは大変なことだと思います。jactaさんが指摘されているように、GUI環境と一口に言っても、いろいろな機能を提供しています。おそらく、初めてプログラミングを開始される方は、それらの機能を理解できず、挫折してしまうでしょう。この当たりは、前提知識の内容に依存すると思います。 Java設計者のJames Gosling氏は、"Javaを覚えるのは午後の一時で十分"と述べていますが、それには前提知識があります。それは、"C++言語をよく理解していること"です。この場合、"よく理解している"という意味ですから、注意が必要です。私もよい結論は見い出せないのですが、次のような学習ステップはどうでしょうか。 1. 経験者に参考図書を選んでもらう 2. 参考書とコマンドラインコンパイラで型や演算、代入などの概念を学ぶ 3. 無料のGUI開発ツールを使う 2から3への移行にどの程度の時間を要するかは学習者の前提知識と意欲にかかっている、と思います。参考書の選択時は、先輩の助言を受けるべきだと思います。海外のフォーラムの発言などにチラッと目を通してみると、世界的な規模で見ても、良書といわれる参考書は本当に少ないようです。 jactaさんと私のやり取りが質問者の参考になれば幸いです。jactaさん、ご協力ありがとうございました。

guccho
質問者

お礼

大学では、Visual C++を使ってはいますが、用意されたソースコードを書き換えるだけで、その実体は知りません。 良書を見つけて、コマンドコンパイラで勉強して、GUI開発ツールの機能に触れる。これで行きたいと思います。 有り難うございました。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.11

質問者さんへのアドバイスにもなるので、少しだけ#10のsuseimeiの回答に反応します。 GUI環境は、分かっている人が使う分にはよいのですが、あまりよく分かっていない人が最初からGUI環境に頼ってしまうと、大切なことがわからないままになってしまう危険性があります。 例えば、環境変数の設定などで最初につまづく方が多いのですが、そういったことがわからなくてもすぐ使えるようにGUI環境(というか統合開発環境)を安易に使い、本来なら最初の段階で(多少苦労してでも)マスターすべきことをやらずに先に進んでしまったために、後からいろいろ問題が起こります。 もし、質問者さんが、C++はこれから勉強するけれども、他のプログラミング言語の経験があり、そういったことが既に分かっているのであれば、何の問題もないと思います。

guccho
質問者

お礼

ご回答有り難うございます。 家では、コマンドラインコンパイラを使って、コマンドラインプログラムを作りながら学習。大学では、Visual C++を使ってやってみようと思います。

  • suseimei
  • ベストアンサー率35% (17/48)
回答No.10

次の回答の補足をさせてください。 > 純粋にC++を学習したいのであれば、コマンドラインコンパイラを使って、 > コマンドラインプログラムを作りながら学習するのが一番です。 この回答に大賛成です。ただし、GUI環境というのは、コマンドラインコンパイラを効率的に使用するソフトウェアに過ぎないことも忘れないでください。GUI環境は、GUIを通して効率的にコマンドラインコンパイラに引数を渡せます。また、直接コマンドラインコンパイラをGUIから操作することもできます。つまり、GUIを使うこととコマンドラインコンパイラを使うことは矛盾しません。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.9

純粋にC++を学習したいのであれば、コマンドラインコンパイラを使って、コマンドラインプログラムを作りながら学習するのが一番です。 ところで、C++には標準規格があるわけですが、規格に完全に合致している処理系というものを私は知りません。 私が知る限り、もっとも規格に忠実なのはComeau C/C++です。他のものは、どうしても規格準拠度が低くなります。 現実の問題として、いろいろな処理系に触れ、C++のどの程度の機能であれば、移植性に問題が出ないかを体得できれば、それは非常に有用なスキルになります。 ANSI C++とかISO C++とかに完全準拠と謳いながらも、exportや国際文字名を使ったとたんに化けの皮がはがれる処理系が非常に多いのが現状です。

  • suseimei
  • ベストアンサー率35% (17/48)
回答No.8

> これからC++を勉強したいのですが、 C++は、国際標準言語であり、特定のベンダーの所有物ではありません。しかし、 開発効率や操作性などを考え、Microsoftをはじめとする各ソフトウェアベンダーは独自の製品を出しています。 最近になり、一部機能(MFCやATLなどの固有資産へのアクセス)制限を設定した無料版を各ベンダーが公開するようになりました。MicrosoftはVC++2005 Express Editionという名称の永久無料版GUIベースの開発環境を公開しています。その最大の特徴は、"限りなく標準仕様に準拠する"ことといわれています。 Windowsの操作に慣れているようでしたら、VC++2005 Express Editionを使用し、効率的にC++を学習するのも一つの選択肢です。C++にはそれにふさわしい学習方法があります。いろいろ悩みながら頑張ってください。詳細については、参考URLなどを参照されるとよいでしょう。

参考URL:
http://www.ttoyota.com/php/myvcee.php
  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.7

一応、マイクロソフトを擁護するわけではないですが、 http://www.forest.impress.co.jp/article/2005/12/16/visualstudioex.html ですから、こちらも一般プログラマは無料で使えますよ。

参考URL:
http://www.microsoft.com/japan/msdn/vstudio/express/
guccho
質問者

お礼

ありがとうございます。 Windowsを購入した際は参考にさせていただきます。

回答No.6

No.5さんに同意します。まずは標準ライブラリから やるべきです。いきなり開発環境に依存するコードを 書くようになったら、後で仕様が変わったときにもう その技術は他で使えないですから。 そういう意味では当分はフリーのBorlandだけでも良い のではと思ったりもします。

guccho
質問者

お礼

>そういう意味では当分はフリーのBorlandだけでも良いのではと思ったりもします。 確かMac用な無いですよね。 gccとかいうコンパイラ(?)があったのでメモ帳でも使って標準ライブラリからやってみます。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> これらは、何がどう違うのでしょうか。 それぞれコンパイラが異なるので、いろいろと異なる癖を持っています。また、サポートするライブラリや、ツール類も異なるので、使用方法はまったく違うと考えた方がよいでしょう。 > 家ではMac、大学ではWindowsを使っています。 これは悪くないと思います。 特に学習段階では、いろいろな開発環境(と実行環境)に触れておくのはよい勉強になります。 ずっと同じ環境しか使ったことがないと、間違いなく変な癖が付きますから。

回答No.3

ずばりMACは論外では? 今の主流は空しくもWindowsのVisial C++.netなので。 言語自体を覚えるならどれでも良いのでしょうが、 機能も覚えたいのならVC++しかないでしょう。

関連するQ&A

  • C++からC#へ

     Visual Studio C# .NETのASPWebアプリケーションを使って、Borland C++ Builder6 で作成されたプログラムをWebアプリケーションに作りなおす事になりました。  期日がせまっているため、できれば簡単にできる方法を早急にしりたいです。 簡単じゃなくてもいいので、やり方や参考になるサイト何でもいいので教えて下さい。

  • C言語のオススメのコンパイラを教えてください

    C言語の勉強を始めようと思い、コンパイラを探しているのですが、どれが良いのかわっぱりわかりません。 Windows7で動作する、初心者向けのコンパイラをご存知でしたら教えて頂きたいです。 少し探してみたところ、Microsoft Visual Basic 2010 Expressは試してみたのですが強制終了してしまい、Borland C++ Compilerは現在は公開されていないようなので、それ以外でお願いします。

  • 「Microsoft Visual C++」でCやC#できますか?

    プログラミングについて初心者です。 仕事の関係でC#を勉強しないといけなくなりました。 学生時代はMATLABしかやっていないし、独学で勉強しようと思って学生時代にMicrosoft Visual C++を入れたのですが、本を見て例題にそって動かしただけであとはずっと眠っています。。 ここで質問があります。 C#を勉強するのにMicrosoft Visual C++では駄目でしょうか?(とんちんかんな質問してたらすみません。コンパイラがあればCは大丈夫って聞いてたのですが。。) あまりにもおかしい質問ならご教授願います。 C#を勉強するには、Microsoft Visual C++ではなくてVisual Studio 2005 Standard Editionの方がいいのですか?(ネットでいろいろ調べたらこれがでてきました。) もし、Visual Studio 2005 Standard Editionならいま入ってるMicrosoft Visual C++はアンインストールしてから入れたほうがいいですか? よろしくお願いします。

  • OpenCVを Borland C++ Builder で使いたいので

    OpenCVを Borland C++ Builder で使いたいのですが、やり方がわかりません。 当方の環境はW.XP Borland c++ Builder V5です。 ネットを検索してみたのですが、OpenCV V1 V2.0 V2.1の記事がごっちゃに成っていて、かつVisual Studioの記事が多く、Borlandの記事が余り見つからず、見つかってもOpenCV V1のものです。 出来れば最新の物を使用したいので、OpenCV 2.1を結合しようと思っています。 http://opencv.jp/opencv2-x-tips/install-on-windo … に書かれている通りにOpenCV-2.1.0-win32-vs2008.exeをDLしてCMAKEをBuildMakefilesを選択して Use default native compilersのラジオボタン実行すると、指定フォルダーに色々ファイルが作成されますが、これらを更にどのように加工して行けばBorland C++ builder用のBin h 等のファイルが作成されるのでしょうか。 マニュアルによるとVisual Studioの時はOpenCV.slnが作られる事に成っていますが、BuildMakefilesを選択して*.sinで検索して見ましたが何も見つかりませんでした。 やり方をご存知の方、お教え下さい。 ただ、申し訳ありませんが、私が混乱しておりますので、実際にBuilderで実行された方のご回答をお願い致します。 よろしくお願い致します。

  • VC++ と C++Builder

    C++の基本的な構造は理解していて、Win32APIを勉強しようとVC++でプログラミングを始めた者です。参考書は猫でもわかるWindowsプログラミングを見ながら勉強しています(難しくてあまり理解出来ていませんが)。 しかし、機能が多すぎたりと使いこなす自信がありません。 C++Builderに変えてみようかと思っているのですが、VC++とC++Builderの違いを教えて下さい。漠然としすぎていてアホっぽい質問ですが・・。 VC++とC++Builderのプログラムの書き方の大きな違いなどはあるのでしょうか? また、みっちり調べたつもりですが無償のBorlandC++Builderが見あたらないのですが・・・。

  • OpenCVを Borland C++ Builder で使いたいので

    OpenCVを Borland C++ Builder で使いたいのですが、やり方がわかりません。 実際にOpenCVをBorlend C++ Builderに結合出来た方の回答をお願い致します。 ネットを検索してみたのですが、OpenCV V1 V2.0 V2.1の記事がごっちゃに成っていて、かつVisual Studioの記事が多く、Borlandの記事が余り見つからず、見つかってもOpenCV V1のものです。 出来れば最新の物を使用したいので、OpenCV 2.1を結合しようと思っています。 http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21に書かれている通りにOpenCV-2.1.0-win32-vs2008.exeをDLしてCMAKEをBuildMakefilesを選択して Use default native compilersのラジオボタン実行すると、指定フォルダーに色々ファイルが作成されますが、これらを更にどのように加工して行けばBorland C++ builder用のBin h 等のファイルが作成されるのでしょうか。 CMAKE実行後のBuildフォルダー内のbin、libフォルダー内は空でした。 マニュアルによるとVisual Studioの時はOpenCV.slnが作られる事に成っていますが、BuildMakefilesを選択して実行後、*.sinで検索して見ましたが何も見つかりませんでした。 やり方をご存知の方、お教え下さい。 よろしくお願い致します。む

  • 「Borland C++ Builder 5」で作成したプログラムについて

    「Borland C++ Builder 5」で作成したプログラム(コンポーネント使用)を、Builderを起動せずフリーソフトのようにWindows上で実行させるにはどうすればよいのでしょうか。

  • C++ アプリケーション作成の質問

    いま、C++を勉強して日記帳のアプリを製作してます。(Visual C++使用中・Microsoft のあれです) 近い将来にJavaを使っゲームのアプリを作ってみたいと思っていて色々なプログラミング言語に対応している wide studio に乗り換えようかと思っています。 質問なんですが、 wide studio、Visual C++、BorlandのC++Compiler等たくさんありますが、『このソフトだと○○ができないが他はできる(○○にはアプリを作成する上でアプリに付け足せる機能(?)です。機能は例えば。。。イベントというものでしょうか?すみません勉強不足ですm(_ _)m)』とか『これは参考書がたくさんあって進め易い』等のいい点、使いにくい点を教えてください

  • XcodeとObjective-Cの良書を教えて!

    Macでソフトを製作しようと思い,Xcodeを勉強しようと思っていますが,どの本を読んで勉強したらいいかわかりません.何かいい本があったら教えてください.Xcode,Objective-C,Cocoaに関する本であれば,洋書でもかまいません.Xcode2.2です.

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。