C言語からC++に移行できない原因は何でしょうか?

このQ&Aのポイント
  • C言語からC++に移行する方法を知りたいです。
  • C++の本が少なく、オブジェクト指向が理解できず挫折しました。
  • CもC++も似ていると言われましたが、実際には異なる要素も多く、イメージが沸かない状態です。
回答を見る
  • ベストアンサー

C言語からC++に移行できない原因は何でしょうか?

お世話になります。 私が初めてプログラミング言語に触ったのが、18歳の頃でした。 当時、大学1年生で純粋なC++でない、C言語から学びました。 その後、あるフリーソフトを見つけてCばっかりやっていました。 具体的には、ソートや検索、最短経路問題、最適化問題などです。 ところが、求人広告にC++ができる人募集とあって、 教授に相談すると、CもC++も似たようなものだからすぐ覚える。 と言われました。 ところが、C++の本がまずほとんど売られていないことと、 Visual C++との関係性、オブジェクト指向が理解できず挫折しました。 いったい、CからC++に移行するにはどうしたら良いでしょうか? イメージが全く沸かない状態です。教えて下さい。お願いします。

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

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1522/2216)
回答No.4

「C++の本がまずほとんど売られていない」というのは一体いつの時代の話なのでしょうか。書籍「プログラミング言語C++」の日本語初版は1988年、Microsoft Visual C++バージョン1.0の登場は1993年で、1990年代半ばにはC++の日本語の書籍は多数出版されていました。 一口にオブジェクト指向と言っても、厄介なことにそのスタイルはプログラミング言語ごとに様々です。 C言語にオブジェクト指向拡張を施した言語にはC++以外の例としてObjective-Cがありますが、C++とObjective-Cではコードの書き方がまるで異なります。Objective-Cは、古くはNeXT、その後はMacやiPhone向けの開発で使われた言語です。 一方、オブジェクト指向プログラミングを学ぶための言語としてはC++はあまりお勧めできません。言語仕様が巨大かつ複雑すぎるからです。「プログラミング言語C++ 第4版」なんて1360ページもあり、学習目的でこの本を買ってはいけません。 オブジェクト指向になじめないせいで挫折した人は、C#やJavaあたりの言語でオブジェクト指向の概念や感覚を先に身につけてからC++の学習をしたほうが理解が早いかもしれないと思います。いきなりC++でプログラミングの学習を始めてオブジェクト指向を習得できた人ももちろんいるでしょうけれど。

-q7P2izb__
質問者

お礼

ありがとうございます。 オブジェクト指向は理解するのに向き不向きの言語が あるんですね。 ちなみに、私はCを習った時、WindowsXPの時代でした。 フロッピーを持ち歩いていたのを覚えています。

その他の回答 (4)

  • BuriBuri4
  • ベストアンサー率28% (150/525)
回答No.5

初期のC++はC言語の拡張として実装されてましたから基本的な文法は同じですね。 Javaなどの言語だと深く考えなくてもオブジェクト指向プログラムになるのですが、C++はC言語として使えるせいでオブジェクト指向で作ろうとしないとオブジェクト指向になりません。 言語以前にオブジェクト指向とはなんぞや?なぜオブジェクト指向が必要なのか?の理解を深めた方が良いと思います。 もはや古典ですが「オブジェクト指向でなぜつくるのか」などを参考にされると良いと思います。

-q7P2izb__
質問者

お礼

ありがとうございます。 オブジェクト指向をかなりなめてました。 最新の情報の書籍で読書してみたいと思います。

  • t_ohta
  • ベストアンサー率38% (5081/13278)
回答No.3

CからC++へ移行するにはオブジェクト指向を理解するしかないですね。 日本国内で売られていた書籍で初期の頃のオブジェクト指向の説明は読者を混乱に陥れる表現(動物クラスの何とかみたいな説明)が多かったので、挫折する人を沢山産んだと思います。 今どきのオブジェクト指向の解説を読んでみるといいんじゃないでしょうか。 最近は書籍が減っていますが、ネット上にはとてもいい解説が書かれたサイトが沢山ありますので、検索してみるといいと思います。

-q7P2izb__
質問者

お礼

ありがとうございます。 オブジェクト指向専門のサイトや本を探してみます。 探し方が悪いのかもしれません。ありがとうございました。

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.2

Visual c++というのはMicrosoftのC++開発環境と捉えてください、 オブジェクト指向を取り入れたCがC++と考えればそんなに身構えなくていいと思います。 C/C++についての書籍ではなくオブジェクト指向について解説された書籍を片っ端から読んでみるのがいいかもしれません。知者が変われば同じ事についての解説でも切り口が変わるのでそのうち自分に合った書籍が見つかるでしょう。 Microsoft Visual C/C++は無料のMicrosoft Visual Studio Expressがあり無料でダウンロード/インストール出来ます。インストールの際にはネット接続が必須(インストールモジュールをダウンロードしながらインストールする)になります。もちろん説明書はないし基本的にはMicrosoftの開発者サイトがドキュメントになります。日本語で出てきますが機械翻訳みたいで場合によっては解読困難な説明がありますwだけど普通にネットを検索すれば現場の開発者の忘備録的なブログなどがヒットするのでそちらを見るのもいいでしょう。 わたしもC言語から入り、C++も勉強しましたが、当時はほとんど理解できず必要に迫られて他の言語を覚えて仕事で使ってきました。 寄り道をしながらもクラスとかオブジェクト指向を知らず知らずに使ってきたこともあり今なら理解できます。だけどわざわざC++で開発する必要もないのであえて覚えるつもりはないですけどね、だけど見れば理解は出来ます。 ネットを検索して見るとC++の解説しかないケースも多々あるのですが、C++のソースを参考に別言語で記述することも出来ます。 だから、C++をプログラミング言語として覚えるのではなく、考え方を学ぶ教材の一つとして捉えればいつの間にか言語としても覚えることが出来ますよ。 あとは、プラットホーム独特の約束事とかそういうのを覚えればいいと思う。

-q7P2izb__
質問者

お礼

ご回答ありがとうございます! 同じ境遇を経験された方のご意見、大変参考になります。 オブジェクト指向で挫折したときは、もうこの先ないと 思って、プログラミングを諦めた時もあります。 今は、Web系のHTMLから始めてJavaScriptまでを習得し、 言語の多様性に触れてみたいと思っています。 あとは、VisualStuidoでC言語で作ったソースをC++に 書き換える予定です。色々と言語を触っていくうちに、 習得できたらいいなと思います。 ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

>CもC++も似たようなものだからすぐ覚える。 そんなことはない。文法の一部は確かに似通ってるかもしれないが、 全然別物ととらえる方がよい。 >C++の本がまずほとんど売られていないことと、 そんなことはない。Cの本よりもよほどたくさん売っている。 探し方がよくない。 >Visual C++との関係性 C++で開発するための処理系の一つに過ぎない。 Visual C++に拘泥する必要はない。 >オブジェクト指向が理解できず挫折しました。 ここでつまずくのであれば、C++はやめた方がよい。

-q7P2izb__
質問者

お礼

ご意見、アドバイス、ありがとうございます。 私が、C言語を始めたのがだいぶ昔の話ですので、 その時点でプログラミングは向いてないのかもしれませんが、 どうしても、世界を変えたいんです! ありがとうございました。

関連するQ&A

  • なぜ「C言語」にOOPが実装されなかったの?

    1972年に開発された「C言語」(C++ではない)には「オブジェクト指向」というのがないのですが、なぜ「C言語」に「オブジェクト指向」というのが実装されなかったのですか? 「オブジェクト指向プログラミング」は1960年代後半に登場していたのですが、後発の「C言語」には「ポインタ」はあっても「オブジェクト指向」というのがありません。なぜ「オブジェクト指向」は実装されなかったのでしょうか? 当時コンピュータの性能が低かったため実装が難しかったことと、まだ当時オブジェクト指向自体が無名だった為、「C言語」の開発者自体も知らなかったということもあるのでしょうか?

  • C++について

    C++について C++を学ぼうと思って入門書を探しています。 今までにC++、オブジェクト指向はやったことがありません。 C言語は初級と中級の間ぐらいの知識です。現在は独習Cを読んで、理解を深めています。 VC++を理解したいと思って業務(ツール)のソースや構成などを見てもさっぱりでした。 どこから学んでいけばよく分からない状態です。 オブジェクト指向を理解しつつ、C++も習得していってVC++を使えるようになりたいです。 Visual C++〈1〉はじめてのWindowsプログラミング (プログラミング学習シリーズ) が良いと聞いたのですが、C言語を分かっている程度の私が読んで勉強になりますか? もし、他に取っ掛かりやすい本がありましたらお願い致します。

  • C言語、C+、C++、C#の違い

    C言語、C+、C++、C#の違いがよくわかりません。 自分でも調べてみましたが、「オブジェクト指向」という言葉が出てきて、よくわかりません。 わかりやすく教えていただけたら幸いです。 初心者がプログラミング言語を始めるならどの言語がいいですか? 幅広い分野で活用でき、初心者でもわかりやすい言語がいいのです。 私は、C言語、C+、C++、C#のどれかを勉強しようと考えているのですが、この中の言語ならどれがいいでしょうか?もちろんこの中の言語以外に初心者にわかりやすく幅広い分野で活用できる言語があればそちらにしようと思います。ありましたら教えてください。

  • C++の将来性・・・

    昨年まで、C++プログラマをしていました。しかし恥ずかしながらぜんぜんオブジェクト指向じゃないコードを書いていました・・・ いまJavaで仕事していて感じるのですが、C++にはガベージコレクションがないので、実はオブジェクト指向プログラミングがとてもやりにくい言語ではないですか? そうなると、C++の必然性がなくなり、C Java C# に取って代わられてC++は消え去っていく言語なのでしょうか。 「いやC++はすばらしいオブジェクト指向言語だ!」というお叱りを期待しています。

  • C++とJava

    オブジェクト指向を採用しているC++とJava。オブジェクト指向プログラミングに関連している部分で、二つの言語の大まかな違いは何でしょうか。

  • Cとjavaの違い

    学校でC言語プログラミングを学んでおり,新たにjavaも習うことになったのですが, C言語とjava言語の違いはどのような所なのでしょうか? java言語は「オブジェクト指向」ですが,C言語は何指向なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • 言語別(C/C++,Java等)の計算速度の違いが知りたいです。

    言語別(C/C++,Java等)の計算速度の違いが知りたいです。 巡回セールスマン問題を解く(よさそうな解を見つける)プログラムを書くことになったのですが、言語が自由です。 オブジェクト指向言語で組もうと思っているんですが、C++、C#、Javaなどの言語のうち、計算速度が早いのはどれでしょうか? 順番も分かれば、教えてほしいです。 また、もしC言語で組めれば、やっぱりオブジェクト指向言語よりも早いのでしょうか? 大体でもよいので、分かる方いたら教えてください。 よろしくお願いします。

  • C言語とC++ の違いについて(オブジェクト指向)

    今まで(3年ぐらい)は,ずっとC言語を勉強してきました. C言語だったらある程度のプログラムは書けると思います. ただ,来年からC++ を使わなくてはならなくなってしまい ました... CとC++との間には一体どういった違いがあるんでしょうか? よく耳にするのが「オブジェクト指向か,そうではないか」 ということです. オブジェクト指向...,良く分りません.一体どういう ことなんでしょうか. なるべく詳しく教えていただけると助かります.また参考書 やサイトなどを教えていただいても構いません. よろしくお願いいたします.

  • CとC++の違いがよくわかりません。

    質問タイトルのとおりなのですが、C++はCの後継で、拡張発展させたものという気がしますが、双方はどのように違い、またそれぞれどのような特徴があるのでしょうか。 C++はオブジェクト指向を取り入れているが、多少無理してCを改変したためにやたら難しい仕上がりの言語になっているとも聞きました。C#はそのあたりが改善されているようですが。 それと、Cは手続き型言語であるということは、多少調べたので、了解しているつもりです。 また、このオブジェクト指向にすることによって、どのようなメリットがあるのでしょうか。 Cには難しいが、C++なら要領よくできるというようなぷろぐらむがあるということなのですかね。そうでなければ、わざわざC++を開発する必要も無かったと思います。 もうひとつお尋ねがあるのですが、Cを学ばずにC++からいきなり勉強をするということは可能なのでしょうか。 それとも、英語や数学などと同じく積み重ねが大事で、Cを学んでこそ、C++に初めてに移行できるものなのでしょうか ちなみに、プログラミングはこれまで未経験で学習を始めたばかりのまだ初心者です。 どなたか、回答よろしくお願い致します。

  • C#言語につきまして

    最近プログラミングしたいなと思って Visual C# 2005をダウンロードしました。 でもC#言語が分からないので 紹介・説明しているサイトが ございましたら教えてください。

専門家に質問してみよう