32

C / C ++は1つの言語ですか、それとも2つの言語ですか?C++はクラスを備えたCであると聞きました。そうですか?

4

8 に答える 8

67

C ++は1982年から1983年にCから分岐しました、そしてそれはコンピュータの年で長い時間です。ただし、C標準ライブラリ自体を含むC ++互換のCライブラリは多数あり、プログラムの安定したストリームがCからC++に移植されています。多くのCプログラマーは、C++と互換性のある機能しか知らないか使用していません。

それらは、別々の委員会からの異なるISO規格によって定義されています。互換性のある機能を定義している場合でも、多くの場合、異なる用語で定義されています。

C / C ++を参照することは、イタリア語/スペイン語を参照することとほぼ同じくらい有効です。誰に、いつそのような用語を使用するかに注意する必要があります。しかし、確かに両方向にアイデアが普及しており、類似点は偶然ではありません。

于 2013-01-15T02:51:14.187 に答える
36

「C/C++」は正確にゼロ言語です。それは存在しません。

一方、Cは言語です。

C ++は別の言語であり、Cに似ていますが、クラスや他の多くの違いもあります。


明確にするために、@Zoidbergは次の場所にスポットを当てていました。

CとC++は完全に異なる2つの言語です。C withClassesはC++の前身でしたが、この用語は今でも非現代的なC ++でよく使用されます(たとえば、あちこちで生のポインターを使用します)。

于 2013-01-15T02:49:09.260 に答える
23

2つの言語です。C ++を「クラス付きのC」と呼ぶのは、象を4本足の動物と呼ぶようなものです。あなたがそれをマウスと比較するまで、それは本当のようです。

Cから派生した多くの言語があります:C ++、Java、C#、JavaScript、csh、リストは続きます。それらはすべて多くの点で異なりますが、類似した構文を共有しています。

もちろん、CはBから派生しています。しかし、それは別の話です(そして、Bについてはもう誰も気にしません)。

于 2013-01-15T02:49:01.793 に答える
12

簡単な答え:2つの言語

これらは2つの異なる言語ですが、ほとんどすべてのCコードが有効な(必ずしも適切ではない)C++コードです。

C ++は、最初は「Cですが、クラスがあります」と考えられていましたが、時間が経つにつれて、ますます異なり、Cコードは非常に悪いC++コードになりました。CまたはC++、あるいはその両方を学ぶことができますが、通常はそれらを混同することはありません(ただし、混同することはできません)。

于 2013-01-15T02:51:55.880 に答える
4

それらは2つの異なる言語です。C ++は、その一部がCに由来し、ある意味でCと互換性があるため、このように名付けられました。

ScottMyersのEffectiveC++によると、C++は次の4つのコンポーネントを備えた統一言語と見なすことができます。

  1. C言語部分、ブロック、ステートメント、プリプロセッサーなど
  2. Objected Oriented C ++:クラス、カプセル化、継承、ポリモーフィズムなどを含む
  3. テンプレートC++:C ++テンプレート、メタプログラミング関連のものを含む
  4. STL。

したがって、C++はある意味でCよりも強力です。

于 2013-01-15T21:54:04.013 に答える
4

C /C++は2つの言語です。Cは1つの言語であり、C++はもう1つの言語です。C ++は「より良い」Cと見なされます。Cは手続き型ですが、C++はオブジェクト指向です。C ++は、Cに比べて多くの改善があり、Cと同様の構文を持っています。

于 2013-01-15T04:06:52.893 に答える
2

「C」という名前は、関連する言語のファミリーを指し、その一部は国際標準として形式化されています。これらには、K&R CANSI CC99、およびC11が含まれます。

「C++」という名前は、関連する言語のファミリーを指し、その一部は国際標準として形式化されています。これらには、C ++ 98、 C ++ 03C ++ 11C ++ 14、および推測されるC++17が含まれます。

「C/C ++」という用語は、C++の設計者によって意図的に維持されているCとC++の共通部分を非公式に指すために多くの人が使用しています。

C ++の直前のバージョンは、実際には元々「CwithClasses」と呼ばれていました。これについては、BjarneStroustrupの1994年の著書「TheDesignand Evolution of C ++」(およびここでも)で詳しく説明されています。名前は最終的に「C++」に変更されました。これは主に、Cコミュニティの好意により、「CwithClasses」を「C」または「newC」に短縮することがあまりにも魅力的になったためです。

C ++には、Cにはない多くの言語機能があります(その逆はそれほどではありません)。特に、クラスベースモデルは、暗黙の関数呼び出しを呼び出す機能があるため、非常に強力であるため、C ++は(有機的に)高レベルのプログラミングスタイルを進化させ、C++の一般的な使用法をCの使用法とは大きく異なります。この最も注目すべき例は、Resource Acquisition Is Initializationと呼ばれる概念に関連しています。これは、標準クラス stringvectorshared_ptr 、および標準I/Oライブラリのストリームクラスで具体化されます。

その他の注意事項:

于 2015-06-04T15:16:27.107 に答える
1

私見ですが、答えはC / C ++は1つの言語ではなく、次の2つの言語だと思います。

  • Cプログラミング言語
  • C++プログラミング言語

C ++言語は、C言語から派生しています。C ++は、「クラス」機能が追加されたCプログラミング言語の名前です。つまり、基本的なC言語アーキテクチャが拡張され、オブジェクト指向プログラミングが可能になりました。インクリメントを意味する「++」演算子を使用します。C ++はCの増分であり、手続き型の方法またはオブジェクト指向の方法、あるいはその両方をプログラミングの方法で使用できます。C ++を使用すると、Cよりも簡単にコードを記述できます。ただし、C ++を使用しているため、C言語が現在適切でないことを意味するわけではありません。各言語は、プログラマーが必要とするソフトウェアの目的のために使用されます。そのため、ANSIはCを標準にしました。

参照

于 2013-01-15T21:24:50.640 に答える