• 締切済み

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

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

みんなの回答

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.4

オブジェクト指向というのはプログラムコードだけの問題ではありません。 極端な話、Cでもオブジェクト指向なプログラムコードを記述することは不可能ではありません。 現に初期のC++はCのプリプロセッサであり、最終的にはCでコンパイルされていました。 名前を見ていただければわかると思いますが、初期のC++は「まだC」であり、「Cを超えるもの」ではありません。 (標準C++以降のC++は多少マトモなオブジェクト思考的進化を遂げています) 本来、オブジェクト指向は「システムのあり方」までも含む壮大な概念です。 言語のみを学んでもオブジェクト指向を理解したとはいえないでしょう。 ですから、SmallTalkをはじめとする『まっとうな』オブジェクト指向言語はインタプリタないしはそれに順する実行環境を必要とします。 Javaしかり、C#しかり。 しかし、「言語から入る」というアプローチは学び方として「あり」です。 (壮大な概念であることを理解した上なら) 「憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門」(翔泳社 ISBN: 4881356194)はC++を使ってオブジェクト指向を解説する珍しい良書です。 C++の文法書ではないのでC++については他の書籍で知識を補完する必要がありますが、「言語から入るアプローチ」には最適な一冊です。

参考URL:
http://www.seshop.com/detail.asp?pid=108
noname#159582
noname#159582
回答No.3

私は一度Javaを習ってから、C++を理解した方が、 オブジェクト指向が分かりやすいと思います。 Java言語はマクロと考えている人もいますが、 1週間で理解できるオブジェクト指向言語です。 SmallTalkもオブジェクト指向言語ですが、Javaほど普及していません。 C++を単にC言語の延長線上と考えると なかなかオブジェクト指向に移れません。 オブジェクト指向によるメリットは、一般的には、再利用?(継承)です。 私は、変数と処理の関連性が、分かりやすくて良いと思います。 CとC++との間の違いは、オブジェクト指向以外には、enumですが、これを使うと大容量データベースに関して処理アルゴリズムが高速化できるし、#defineと異なり有効範囲(スコープ)が指定できるメリットもあります。その他、いろいろとあったと思います。 ※すみませんが、所々で用語が間違っているかも知れません。 うまく説明できませんが、いくつか作って慣れてくると分かってきます。

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.2

オブジェクト指向 プログラミング入門 トッパン 1992年 ティモシイ A.バッド 著  これを薦めます。 最初にC言語が習慣になると  なかなかオブジェクト指向の C++のプログラミングには移れないかも知れませんね。  私の場合は、気がつくとまるで C言語のようなC++のプログラミング なんてことがよくありました。 頑張って下さい。

noname#6581
noname#6581
回答No.1

C++は、ただCを拡張した言語です。 「C++」=「オブジェクト指向」ではありません。 実際、C++では全然オブジェクト指向ではないプログラムを作ることができます。 徹底的にオブジェクト指向にこだわった言語に「Smalltalk」というものがあります。 次のページはSmalltalkを使用してオブジェクト指向を解説しているページです。 参考にしてください。 http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak/index.html

参考URL:
http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak/index.html

関連するQ&A