• ベストアンサー

CかC++どちらを覚えるべきですか?

初めまして。せいじと申します。よろしくお願いします。 プログラミング経験なしです。今30歳です。 遅すぎますが、これからC言語かC++言語をマスターしたいと思っています。 Windows 98 + Borland C++ Compiler 5.5 で勉強しようと思ってます。 Cの拡張されたものがC++だからC++を覚えようと思って、C++の本を買いました。 ・新C++言語入門 ビギナー編 SOFTBANK Publishing 林 晴比古 著 ・詳説C++             SOFTBANK Publishing 大城 正典 著 2冊ともまだ最初の方を読んで実践しただけです。 クラス、オブジェクト指向プログラミング等々が何なのか分かっていないのに、 C++をする意味があるのか、まずはCで十分ではないのか? と思うようになってきました。 実際どうしたら良いのでしょう。 何も知らないならC++からでも良いのでしょうか。 違いが分からないならCで十分なのでしょうか。 みなさんの意見を聞かせてください。 よろしくお願いします。

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

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.4

seiji-h さん。こんにちわ。 プログラミングを今後主に何の目的で使いますか? (1)仕事でC++が必要。  頑張っておぼえましょう。 (2)文書データの加工など。。。  今すぐPerl言語に切り替えましょう。 (3)趣味でWindowsアプリなどの作成を目指して。。  そのままコツコツC++を続けていってください。 (4)歯ごたえのあるプログラミング言語を。。。  そのままコツコツC++を続けていってください。 >実際どうしたら良いのでしょう。 >何も知らないならC++からでも良いのでしょうか。 どのようなことに興味をおぼえるかで、Cから始めるべきか、C++から始めるべきか 向き不向きがあります。 ★簡潔な文法をもとに、ガリガリと自分の思うままに、プログラミングしたい。 とにかく自分で動くものを作りたいということなら、Cから始めるのが向いていると思われます。 ★プログラミングすることよりも、プログラミング言語「自体」に興味があって、 一種の研究の対象と考えている場合は、C++の方が、おもしろおかしく学べると思います。

seiji-h
質問者

お礼

プログラミングは趣味でやりたいと思いました。 1~4の中から選ぶとすると、メインは2のような感じです。 フリーのCGIでデータベース(CGI DE アミ~ゴ!!)をホームページに設置して こういうのが自分で作れたらいいな、と思ったのがきっかけです。 テキストファイルのデータをPerlで処理しているCGIです。 これをテキスト+Perlではなく、本物のデータベース+CかC++で処理したいと 考えました。CやC++ならそれ以外にもその知識の使い道がいくらでもあるからです。 (Perlもあるとは思いますが) >とにかく自分で動くものを作りたいということなら、Cから始めるのが向いていると思われます。 これに当てはまると思いますが、C++を勉強することにしました。 どうもありがとうございました。

その他の回答 (9)

  • ametsuchi
  • ベストアンサー率31% (81/257)
回答No.10

私もC++からの方がいいと思います。C++はオブジェクト指向言語ですから、Cとは全く異なります。私自身は、 1)Assembler 2)Fortran(大学では、1)より先に少しかじった) 3)Pascal(ごく短期間) 4)C 5)C++ という順序で憶えましたが、4)までは、殆ど何の苦労もなくマスターできました。Cではポインタに多少てこずったくらいです。これとて、Assemblerと対応付けるとあまり問題なかったです。 しかし、C++は1)~4)とは全く違うのです。C++はCをベースにしているとは言え、似て非なるもの。恥ずかしい話だが、頭が「手続き型言語」に慣れきっていて、「オブジェクト指向」になれないのです。 ですから、歳取ってからC++に慣れるのは大変だから、頭の柔らかい内にC++に慣れた方がいいというのが、いまだにC++にてこずっている私の意見です。

seiji-h
質問者

お礼

かなりの言語を修得されてますね。他のみなさんもそうなんでしょうか! >ですから、歳取ってからC++に慣れるのは大変だから、頭の柔らかい内にC++に慣れた方がいいというのが、いまだにC++にてこずっている私の意見です。 頭の柔らかい内に... すでに固くなっています... もうプログラマとして始めるには遅いと思っていますが、 できる限りがんばりたいと思います。 ありがとうございました。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.9

何も無いところからはじめるのであれば、C++ で良いでしょう。 よく「 C の知識も必要だから」と言われますが、C++ だけ知っておけば 良いのであれば、どの部分が C++ だ、などと知らなくても良く、全部、 C++ だと思って憶えちゃいましょう。つまり、 > 何も知らないならC++からでも良いのでしょうか 「何も知らない *から* C++から *の方が* 良い」です。 あと、いわゆる「オブジェクト指向」ですが、なるべく、変な癖が つかないうちにやっておいた方がお得です。 また、Windows ベースのプログラムを組み出すと、Cだけでも組めないこと は無いのですが、楽に組むためには MFC などの C++ ベースのライブラリを 使う方が格段に楽です。 そういう意味で、C *だけ* を憶えれば十分、という局面は、どんどん 少なくなってきています。個人的には、「 C だけを…」と言うセリフ 自体が、古臭い考え方です。

seiji-h
質問者

お礼

>「何も知らない *から* C++から *の方が* 良い」です。 反対の意見の方もいますが、これを言っていただけると、安心できます。 >あと、いわゆる「オブジェクト指向」ですが、なるべく、変な癖が >つかないうちにやっておいた方がお得です。 オブジェクト指向とは何か、まだ全然理解しきっていないですが、 みなさんの回答でその辺は感じました。 >そういう意味で、C *だけ* を憶えれば十分、という局面は、どんどん >少なくなってきています。 もしCを覚えるとしてもC++は必須の知識になってきているのですね。 C++を覚えることにしたので、その中からCを学んでいこうと思います。 どうもありがとうございました。

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.8

適応性で差が出るとは思うのですが、私が今どちらも知らなかったのだとしたら、いきなりC++から始めます。 CもC++も扱っていますが、急ぎでテストコードを書かなければならない様な時はクラス設計を検討する手間隙を考えると、ついつい手抜きをしてCに走ってしまっています。 慣れれば手間隙とも感じなくなるのでしょうが、CP/M時代からCにどっぷり浸かってしまってきたもので、どうしても過去の資産と自分の頭の中身がCになってしまうんですね... それでも『ああ、やはりC++で書いておくべきだった』と後の祭りが多々。

seiji-h
質問者

お礼

両方知っていると得することもあれば、損することもあるんですね。 私はC++に決めました。 過去の資産がない分、C++修得には有利かもしれません。 開発もC++でCにならないように綺麗に作成したいと思います。 どうもありがとうございました。

  • brogie
  • ベストアンサー率33% (131/392)
回答No.7

 オブジェクト指向プログラミングがはやりだしたMS-DOS時代に、Cを知っている人より、最初からC++を勉強したほうが早くマスターできると言われていました。  Cを知っている人がC++をマスターするのに半年はかかると言われていました。会社で仕事に使用している人たちはもっと早く使えるようになるみたいです。  あなたのように、これからプログラミングしようという人は、DOS上でするならともかく、Win上でするのであれば、Borland C++ Builderを購入されることをお勧めいたします。小生はProfessonal版(定価6万8千円)を購入しましたが、Delphi と JBuilderがオマケについてきました。Learning版は定価2万円です。 http://www.watch.impress.co.jp/pc/docs/article/20000214/inprise.htm http://www.borland.co.jp/qanda/cbuilder/  Borland C++ Builderの参考書も沢山出版されています。最新版はVer.5ですが、参考書はまだ出版されていないようです。Ver.1の参考書も結構参考になります。サイト検索で探してください. 「入門 C++Builder4 美田幸夫著 広文社」の著者のMLがあり、結構初歩的な質問にも著者が回答しています。非常に丁寧です。下のURLがそうですが、2,3日前までは表示していましたが、25日11時現在は表示されません。 http://www.kaajapan.com/cbpbbs.html

参考URL:
http://www.watch.impress.co.jp/pc/docs/article/20000214/inprise.htm
seiji-h
質問者

お礼

C→C++は頭の切り替えが重要そうですね。 私は頭が固いので、C++からにします。 まずはテキスト通りに、DOS上で進んでいき、 最終は、Windowsのアプリケーションも作成したいと思っています。 その前にC++でCGI(データベース関連)を作成するのが夢です。 Windowsのアプリケーションを作成する時には、紹介していただいた C++Builderの購入を考えていますが高いですね~。 Professional版を買うと思いますが、まだ先なので次期バージョンを 購入することになるかも。 どうもありがとうございました。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.6

私も可能ならばCから始めたほうがいくらか楽じゃないかと思います。 そして、C++に移行するときにお勧めの本がコレ  「C++のからくり」ISBN 4-7973-0829-X 良くあるテキスト本では、あーしろこーしろと言う説明ばかりで、じゃなぜそうなの?ってフトした疑問にはなかなか答えてくれませんが、この本はその「なぜ?」の部分を説明してくれます。 私のC++バイブルです。この本でC++(というかクラス)に目覚めました。 サンプルプログラムも、最初はCオンリーで書かれていたものが章を重ねるごとにほぼ同じ機能でC++に移行していくためとてもわかりやすいです。

参考URL:
http://books.softbank.co.jp/bm_detail.asp?sku=479730829X
seiji-h
質問者

お礼

Cから覚えた方が楽そうだというのは分かったのですが、 私の頭が固いので、Cではこうだけど、C++ではこう。っていうのが 私には難しそうです。結局C++を勉強することに決めました。 C++からCも見えてくると思いますので、その時に、紹介していただいた テキストを参考にしてみようと思います。 どうもありがとうございました。

回答No.5

多くのひとは実際Cから入ったのでCからやったほうが良い、と いうご意見になるようですね。 じゃあちょっと違った角度から。どうせ趣味でやるなら、 「C++っての、やってみたいな」 ならどんどんおやりになったらよろしいかと思います。 「オブジェクト指向はもっと上達してからやるものでしょ?」 などと考えていると、結局やらないで終わったりします。 C++なのに、実際はCでしかない(オブジェクト指向らしいプログラム ではない)ものを書く人もたくさんいますし。 先にCでの書き方を知ってしまったので、かえってオブジェクト指向 の理解が難しくなってしまうようなことも。(Cならこう書けるのに なんでわざわざ…などと思ってしまって) だったらむしろ、最初からオブジェクト指向での考え方から 入っちゃったほうがいい場合もあるような気がするのです。 まあ、Cでもオブジェクト指向ライクに書くことは可能です。 (うまい書き方ができるひとは自然とそれに近い形になっている ものです) オブジェクト指向というのはプログラムの設計の仕方ですから。 C++やJavaはそれを言語としてやりやすくサポートしてくれている だけで。 個人的には「Javaでいいのでは?」とも思いますが…。というか プログラミングというもので遊ぶならlispなんかがいいんじゃ ないかな、とか思ったりしますが…。 どちらにせよ、プログラミングのキモというものを掴んでしまえば、 あとは言語特有の書き方、考え方に馴れるということだけですので、 どんな言語もやればよろしいと思います。30から始めたからと いって一生1言語しか理解できない、ときまったわけでは ないですから。

seiji-h
質問者

お礼

>「オブジェクト指向はもっと上達してからやるものでしょ?」 >などと考えていると、結局やらないで終わったりします。 C++から始めても、この状況に陥りそうで恐いです。 まずは、購入した入門書(新装版プログラミング講義C++)を 最初から順に理解していこうと思っています。 今はC++だけマスターできればいいや、って考えですが、 ネットでいろいろ調べてみると、Javaはマスターした方が良さそうですね。 C++とJavaで趣味+仕事に役立てたいと思います。 ちなみに今の仕事はC++やJavaでの開発とは関係ないです。 どうもありがとうございました。

  • oodaiko
  • ベストアンサー率67% (126/186)
回答No.3

私もプログラミングの経験はほとんどないのですがやはり今から始めるのなら C++の方がお得だと思います。 一応Cの上位互換と言うことなのでCの特徴である(別にCの専売特許ではありませんが) ポインタや構造体やメモリ管理についても一通り学べると思いますし、テキストの 書き方にもよりますが構造体の概念を学ぶとクラスの概念が理解しやすくなると思います。 (ベテランの方はC++は本当のオブジェクト指向言語じゃないとおっしゃるようですが 趣味としてプログラミングをやるのならそんなに思想的な部分にこだわる必要はないでしょう。) テキストの選択は重要だと思います。C++のテキストの中にはCの知識を前提としている 物も少なからずあるようです。もちろんそういう本ではなく本当の初心者を対象にした本を 選ぶべきでしょう。私のお勧めは「C・C++入門」(松坂勝志他共著 森北出版) です。1994年初版発行と少々古く、またC++のクラスについては最後の12章にしか 書かれていませんが、学生の教育で苦労している高専の先生方が書かれたものだけに プログラマーの人が書いたものより読みやすいと思います。

seiji-h
質問者

お礼

開発経験がほとんどないそうですが、かなり私とのレベル差を感じます。 勉強しようと思ったきっかけは、趣味からです。 趣味が仕事にまで役立つようになればいいな、と甘い考えも持っています。 テキストは、紹介していただいたものが見つからなかったので、 同じく先生をしている方(柴田望洋氏)の入門書(新装版プログラミング講義C++)を購入しました。 これも分かりやすそうです。 どうもありがとうございました。

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 VBでもなくJavaでもなくC,C++を勉強されたいのですよね? 王道はCをマスターしてからC++だと思います。(異論はあるでしょうが...) ただし、C++を勉強するということはCも勉強することでもあると思いますから C++からでも良いかな? Borland C++ Compiler 5.5 ってフリーの開発環境ですよね。 出来ないことはないのですが、Winodwを伴うプログラム(電卓とかエディタとか)を作成しようと思ったら大変だと思いますよ。 (頑張ってる人もいるのでしょうが...) ある程度まで勉強が進んできたら製品版の購入をお勧めします。

seiji-h
質問者

お礼

VBでもなくJavaでもなくCかC++を勉強したいのです。 CをマスターしてからC++が良いことは分かってきましたが、 C++を勉強していきます。 とりあえず、フリーのコンパイラで入門書をこなしていきます。 フォームとかはまだ先のことだと考えています。 まず初歩を勉強し、将来的には製品を購入したいと思っています。 ありがとうございました。

  • shinjif
  • ベストアンサー率33% (30/90)
回答No.1

C++はCを「オプジェクト指向」用に拡張したものです。 よって、C++を知ると言うことはCの知識も必要になります。 Cは知らないけどC++はできるということにはなりません。 とっつきやすいのはCかも知れません。また、C++の解説本というのはCは知っているという事を前提としているのが多いですから、C++を知る前にCをサラッと勉強しておいて損はないと思います。 C++はC++が難しいというのではなく、「オプジェクト指向」を意識した設計というのが ちょっと経験とコツがいるということです。 たとえれば、CやC++は英語の単語や文法を覚えるということです。それで、英語を書くことはできます。 オプジェクト指向という設計方法を知るのは「英語で小説を書く」という様なものです。 日本語でも英語でもそうですが、言葉を知っているだけでは「小説」は書けません。 世の中の潮流としてはオプジェクト指向が主流になってきているので、最終的にはC++を覚えた方がBetterであるとは思います。(勿論、オブジェクト指向を勉強するのなら、C++以外にもJavaやObjecttive-Cといった言語もありますが・・・・

seiji-h
質問者

お礼

オプジェクト指向とは何か理解していないのですが、 「英語で小説」の例えで、重要性は分かってきました。 まずは「オプジェクト指向」という言葉にとらわれずに C++を勉強していこうと思います。 どうもありがとうございました。

関連するQ&A