• ベストアンサー

C++とJava

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

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

  • ベストアンサー
回答No.1

多重継承の有無 ほかにも色々あるけれど"大まかな"違いの最たるものはこれ。

RKCP095
質問者

お礼

簡潔でストレートな回答でわかりやすいです。 ありがとうございます。

その他の回答 (1)

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

>オブジェクト指向プログラミングに関連している部分で ここからは(一部)外れるかと思いますが、最も大きな違いは、C++にはテンプレートって機能があってそれが大々的に使われてるってことですかね。JAVAだとインターフェースとか継承のネストとかで実装するパタンが、C++だとテンプレートで実装されることが多いです。 テンプレートの方が(実行時の)効率がいいってことと、C++のクラスにはJAVAのObjectクラスのような共通のスーパークラスがないんで、そもそもテンプレートを使わないと設計パタンが実装できないことがある、てのもあります。 全般的に、JAVA(やその他のまともなオブジェクト指向言語)では実行時に処理するべきことを、C++ではコンパイル時にしないといけないことが多かったりして、ある意味、オブジェクト指向言語としては半端です。で、その分、テンプレートという機能が加わっているて感じか。

RKCP095
質問者

お礼

良い意味で脱線して話をして頂いて、とても良かったです。ありがとうございます。

関連するQ&A

  • Cとjavaの違い

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

    • ベストアンサー
    • Java
  • C++の将来性・・・

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

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

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

  • C・JAVA・COBOL どれを学べばよいですか?

    プログラミングの勉強を始めようと思います。 夜間等のスクールに通って勉強していきたいのですが、調べたらC・JAVA・COBOLと3つプログラミング言語コースがありました。 どれを学ぶのが将来的に使える?有意義なのでしょうか? 3つの違いや・それぞれを学ぶことによってどのようなことができるようになるか分かりません。 また、2つ3つを学ぶ必要があるのでしょうか? よろしくお願いします。

  • CとJAVA

    いずれ、CとJAVA両方使えるようになりたいのですが、等しいくらいどちらもやりたいです。 なのでどちらから手をつければいいか決められないでいます。とりあえずなにか作りたい!っていう希望はあります。そして情報系の学科に進むつもりでいるので。 プログラミングはまったくの初心者ですが、一般的にJAVAは文法的にC言語に似た言語、JAVAの方がとっつきやすい、っていうのはよく聞きます。でも最終的にはプログラミング関係の就職も考えているので大変でも努力は惜しまないつもりです。 そこでC言語とJAVAそれぞれについての長所、短所を教えて欲しいです。もっと踏み込んで、(将来性も考えて)どちらから手をつければいいかのご意見をもらえればと思います。 ご意見お待ちしています!

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

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

  • PHPの次に学ぶとしたらJavaそれともC#?

    Javaは企業の多くが採用されていることから、解説書が数多く出回っているでしょう。オブジェクト指向やアルゴリズムの概念、サンプルコードなどの解説書のほとんどがJavaを占めるでしょう。しかし、C#はそのような解説書が少ないため、オブジェクト指向やアルゴリズムの概念を掴みにくいではないでしょうか。解説書の少なさからC#は学びにくいかと思います(C#言語自体は簡単かも知れませんが…)。 しかし、Windowsアプリの開発はJavaよりC#の方が向いているかも知れません。動作が速いですし、.exeからインストールできるなどのメリットがあると考えています。逆にJavaはGUIの動作は遅いし、.exeからインストールすることも出来ず、個人ユーザの多くが利用してくれなさそうなイメージがあると思います。 将来的にWindowsアプリとサーバサイド、Webでアプリとして動作するアプレットなど開発のしやすさの点から考えればJavaよりC#の方が需要があると思いますし、C#を採用していく企業も増えていくではないかという見方もあります。以上、私の解釈となりますが、どう思いますでしょうか。 また、PHPを学んだ私にとって第二言語はJavaそれともC#のどちらを学んだ方が良いでしょうか。個人的の趣味では企業向けのJavaよりC#の方が実用的ではないかと思います。皆様のご意見もお聞かせください。

    • ベストアンサー
    • Java
  • C言語、C+、C++、C#の違い

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

  • CとJAVA

    プログラミングをまったく書いたことのない超初心者なのですが。CかJAVAどちらかの言語を学びたいと思っているのですが。仕事で使うためできるだけ早く身につけたいのですか、どちらの方が早く理解できるでしょうか。

  • CとJAVA、どちらがいいでしょうか?

    プログラミングを始めようと思っています。 趣味としてゲームやソフトを作ろうと思っているんですが CとJAVA、どちらが推されているのでしょうか? または別の言語でもいいので、 薦められているものがあれば よろしくお願いしますm(_ _)m (できればメリットやデメリットを書いていただけるとうれしいです)

専門家に質問してみよう