• ベストアンサー

CとC++の違い

leaz024の回答

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.7

 オブジェクト指向プログラミングと、従来のプロシージャ指向プログラミングでは、プログラムの中核およびプログラミングする内容が大きく異なります。  プロシージャ指向ではアルゴリズムを記述したものがプログラムであり、データを流す手順をプログラミングします。  これに対しオブジェクト指向ではオブジェクト間の連携方式を記述したものがプログラムであり、オブジェクトに与えるメッセージの流れをプログラミングします。  オブジェクト指向プログラミングの主用概念は、次の3つにあります。 ■抽象化  ・詳細を排除し、基本的特徴だけをとりだすこと。  ・関数などによってプロセスの詳細を排除する「プロシージャの抽象化」と、CのFILE型やBASICの文字列型のように、複雑なデータ構造を概念的に簡単に表現する「データの抽象化」とがあり、これにより大規模なプログラムを簡単に記述できる。クラスはこの2つを併せ持つ。 ■カプセル化  ・オブジェクト内の細かい仕様や構造を外部から隠蔽すること。  ・外部からは公開された手続き(メソッド)を通してしかデータを操作できないようにすることで、内部の仕様変更が外部に影響しなくなり、結果ソフトウェアの保守性や開発効率の向上につながる。 ■クラスの階層化(継承)  ・あるクラスをもとに、拡張や変更を加えた新しいクラスを定義し、クラスの階層構造をつくること。  ・基本クラスの性質は派生クラスへ受け継がれるため、派生クラスでは差分を定義するだけでよい。これによりプログラムの拡張性が高まる。

noname#6448
質問者

お礼

みなさん、ありがとうございました。 オブジェクト指向についてはなんとなくですが分かりました。 ところで、 オブジェクト指向以外に、CとC++の違いはあるのでしょうか?

関連するQ&A

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

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

  • Cとjavaの違い

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

    • ベストアンサー
    • Java
  • C++とVC++の違いについて

    この質問をご覧頂きありがとうございます。 みなさんに2つ、お聞きしたいことがあり、質問させていただきます。 1.C++とVC++とでは、どのくらいの違い(どういう違い、特徴)があるのでしょうか? 2.また、これからC++/VC++でプログラミングを始めようとした場合、 C++からVC++へと段階を踏んで勉強した方がよいのでしょうか? 一応、私のプログラミングの履歴としては、 言語としてVisual Basicは多少勉強はしておりました。 また、オブジェクト指向の基礎程度(多相、継承、カプセル化)は理解しています。 抽象的な質問で大変恐縮なのですが、 みなさんの経験論や、ご参考にした本、HP等がありましたら、 ご教授いただければと思います。

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

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

  • C++とJava

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

  • 言語別(C/C++,Java等)の計算速度の違いが知りたいです。

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

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

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

  • オブジェクトと関数の違い

    オブジェクトと関数の違いは何ですか?また、オブジェクト指向は「いかに効率良く開発を行うかを突き詰めた考え方」という意味で合っていますか?

  • C++の将来性・・・

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

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

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