例によるCとC ++の違い プログラミング言語

主な違い: CとC ++は2つの異なるコンピュータプログラミング言語です。 C ++はCプログラミング言語から開発されました。 しかし、それらは性質がかなり異なります。 最も明白な違いは、Cは手続き指向言語であるのに対し、C ++は手続き型プログラミングとオブジェクト指向プログラミングの両方をサポートしているため、ハイブリッド言語と呼ばれることが多いことです。

CとC ++は2つの異なるコンピュータプログラミング言語です。 Cはもともと1969年から1973年の間にAT&T Bell LabsでDennis Ritchieによって開発されました。C++は別の汎用プログラミング言語です。 それはオリジナルのCプログラミング言語から開発されました。 それは1979年からベル研究所でBjarne Stroustrupによって開発されました。それはCに基づいていたので、もともとC with Classesと呼ばれました。それは1983年にC ++に改名されました。

Cは、現在最も古いプログラミング言語の1つであり、最も広く使用されているプログラミング言語の1つです。 以前はアセンブリ言語でコーディングされていたアプリケーションで常に使用されています。 これには、UNIXコンピュータのオペレーティングシステムが含まれます。 また、Cは、C#、D、Go、Java、JavaScript、Limbo、LPC、Perl、PHP、Python、およびUnixのCシェルなど、多くの最新のプログラミング言語に直接または間接的に影響を与えています。 これらの新しい言語にもかかわらず、Cは依然として人気のあるプログラミング言語です。

C ++はもともとCの拡張として始まりました。それはCとソースとリンクの互換性を持つように設計されました。しかし、それはクラス、仮想関数、演算子オーバーロード、多重継承、テンプレート、例外処理などを追加しました。それ自体でプログラミング言語と見なされるのに十分です。 それはもともとISO / IEC 14882:1998認定プログラミング言語として1998年に承認されました。 今日、C ++は現在ハードウェア設計に広く使用されています。

Cは、ステートメント終了記号としてセミコロン(;)を使用し、ステートメントのブロックをグループ化するための中括弧({})を使用する汎用プログラミング言語です。 それは構造化プログラミングのための機能を持ち、その設計は典型的な機械語命令に効率的にマッピングできる構造を提供します。 また、字句変数のスコープと再帰を可能にし、多くの意図しない操作を防ぐ静的型システムを持っています。

ただし、C ++と比較すると、Cには多くの制限があります。 Cはオブジェクト指向ではないため、OOPSの概念をサポートしていません。 Cは関数と演算子のオーバーロードをサポートしていません。 構造体内で関数を使用することはできません。 仮想関数や参照変数、あるいは例外処理はサポートされていません。 参照変数もサポートされていません。 さらに、Cはカプセル化もデータ保護も行いません。 対照的に、C ++はこれらの機能のすべてをサポートしています。

さらに、C ++はNAMESPACE機能をサポートしていません。 名前空間は、識別子(型、関数、変数などの名前)をグループ化することを可能にする決定的な領域です。 その後、名前空間を使用してコードを論理グループに編成し、名前の衝突を防ぐことができます。 これは、コードベースに複数のライブラリが含まれている場合に特に役立ちます。これにより、コードに衝突が発生しやすくなります。

この2つの言語は、アドレスメモリの機能、入出力、およびGUIプログラミングの方法も異なります。 例えば、Cはメモリの割り当てと割り当て解除にcalloc()、malloc()、free()関数を使用しますが、C ++はnewとdeleteを使用します。 Cは入出力にscanf()とprintf()を使用しますが、C ++はcin >>とcout <<演算子を使用します。 C ++はGUIプログラミング用のGTKツールをサポートしていますが、C ++はGUIプログラミング用のQtツールをサポートしています。 もう1つの違いは、Cでは、プログラムの先頭ですべての変数を宣言する必要があるのに対し、C ++では、変数をプログラム内の任意の場所で宣言できることです。

さらに、C ++はCよりも使いやすいため、通常は習得が容易であると考えられています。C++には、特にCフレームワークに慣れていない人にとってはコーディングを容易にする多数の追加機能があります。 しかし、多くの人がそれが実際に重要であると主張しています。 この2つの言語は大きく異なるため、実際は互いに独立した2つの異なる言語にすることができます。 留意すべき点の1つは、CはC ++よりもはるかに構造化されているのに対し、C ++はCより表現力があり抽象的であるように設計されていることです。

CとC ++の比較

C

C ++

設立

1969年から1973年の間にAT&T Bell LabsでDennis Ritchieによって開発されました。

1979年からベル研究所のBjarne Stroustrupによって開発されました。

ソースコード

フリーフォーマットプログラムのソースコード

もともとCプログラミング言語から開発された

言語

手続き指向の言語

手続き型プログラミングとオブジェクト指向プログラミングの両方のパラダイムをサポートします。 したがって、それはしばしばハイブリッド言語と呼ばれます。

アプローチ

トップダウンアプローチに従います。

ボトムアップアプローチに従います。

関係

CはC ++のサブセットです。 C ++コードを実行することはできません。

C ++はCのスーパーセットです。C++はほとんどのCコードを実行できますが、CはC ++コードを実行できません。

ドライブ

機能駆動型言語

オブジェクト駆動言語

フォーカス

データではなくメソッドやプロセスに焦点を当てています。

メソッドやプロシージャではなくデータに焦点を当てています。

ビルディングブロック

関数

オブジェクト

キーワード

32個のキーワードを含む

52個のキーワードを含む

OOPSの概念

'C'言語は手続き指向言語であるため、クラス、オブジェクト、継承、多態性、データ隠蔽などのOOPSの概念をサポートしていません。

オブジェクト指向言語として、C ++はクラス、オブジェクト、データ隠蔽、多態性、継承、抽象化などをサポートします。

関数

  • 機能とオペレータのオーバーロードをサポートしません。
  • 構造体内で関数を使用することはできません
  • 仮想関数と参照変数をサポートしません
  • 例外処理をサポートしません
  • 参照変数をサポートしません
  • 名前空間機能はありません
  • 他の関数からmain()関数を呼び出せる
  • 機能とオペレータのオーバーロードをサポートします。
  • 構造体内で関数を使用することができます
  • 仮想関数と参照変数をサポートします。
  • try and catchブロックを使用した例外処理をサポートします。 例外は、コードを不正確にする「強い」エラーに使用されます。
  • 参照変数をサポート
  • 名前の衝突を回避するNAMESPACE機能を使用します。
  • 他の関数からmain()関数を呼び出すことはできません。

メモリ機能

calloc()、malloc()、およびfree()関数を使用して、メモリの割り当てと割り当て解除を行います。

同じ目的で演算子newとdeleteを使用します。

カプセル化

サポートしていません。 データと機能は別々の自由な実体です。

カプセル化をサポートします。 データと機能は、オブジェクトの形でまとめてカプセル化されています。 オブジェクトクラスは、オブジェクトの構造の青写真を提供します。

情報の隠蔽

Cは情報の隠蔽をサポートしていません。 ここで、データは自由な実体であり、外部のコードによって操作することができます。

カプセル化はデータを隠し、データ構造と演算子が意図したとおりに使用されるようにします。

データ

組み込みおよびプリミティブデータ型をサポートします。

オブジェクト指向ではないため、データは保護されません

組み込みとユーザー定義の両方のデータ型をサポートします。

データはC ++で保護(非表示)されています

レベル

低レベル言語

中級言語

入出力

'C'言語は入力と出力にscanf()とprintf()を使用します。

'C ++'言語は、入出力にcin >>およびcout <<演算子を使用します。

変数の宣言

Cでは、プログラムの先頭ですべての変数を宣言する必要があります。

C ++では、変数は使用前にプログラム内の任意の場所で宣言できます。

多重宣言

グローバル変数の多重宣言は許されます。

グローバル変数の多重宣言はできません。

マッピング

データと機能の間のマッピングは困難で複雑です。

「オブジェクト」を使用してデータと関数の間のマッピングを使用することができます

GUIプログラミング

CはGUIプログラミングのためのGTKツールをサポートします

C ++はGUIプログラミング用のQtツールをサポートします

継承

継承はCでは不可能です

継承はC ++で可能です

ファイル拡張子

ファイル拡張子.c

ファイル拡張子.cpp

デフォルトヘッダファイル

C言語で使用されるデフォルトのヘッダーファイルはstdio.hです。

C ++で使用されるデフォルトのヘッダーファイルはiosteam.hです。

CとC ++の違いのいくつかの例:

C

C ++

変数宣言

一番上だけ:

int i;

(i = 10; i <10; i ++)の場合

プログラムのどこにでも:

(int i = 10; i <10; i ++)の場合

メモリ割り当て

Malloc:

int * x = malloc(sizeof(int));

int * x_array = malloc(sizeof(int)* 10);

新しい:

int * x = new int;

int * x_array = new int [10];

メモリを解放する

無料

free(x);

free(x_array);

削除します。

xを削除します。

delete [] x_array;

推奨されます

関連記事

  • との差: 戦術と戦略の違い

    戦術と戦略の違い

    主な違い: この2つの単語の主な違いは、戦略の範囲が広いことです。 それは最終目標に焦点を当てています。 その主な目的は、エンドポイントを達成しようとすることです。 一方、戦術の範囲は狭くなります。 彼らはタスクからタスクへと到達しようとすることに焦点を当てています。 最終目標ではなく、直接の目標を達成することを主な目的としています。 戦術と戦略は、現在一般的に聞かれる2つの単語です。 彼らはかつては軍事用語でしたが、現在はビジネス、スポーツ、さらにはゲームにも一般的に適用されています。 2つの用語は相互に関連していますが、それらは決して同じではありません。 彼らは2つの全く異なることを推論します。 彼らの核心では、両方の言葉は何かを達成する方法を意味します。 それらはプロセス、テクニックです。 ただし、この2つの単語の主な違いは、戦略の範囲が広いことです。 それは最終目標に焦点を当てています。 その主な目的は、エンドポイントを達成しようとすることです。 一方、戦術の範囲は狭くなります。 彼らはタスクからタスクへと到達しようとすることに焦点を当てています。 最終目標ではなく、直接の目標を達成することを主な目的としています。 戦術はより小さな一連の戦略である、または戦略はすべての戦術の組み合わせであると言えます。 オックスフォード辞書は戦術を「特定の目的を達成するために慎重に計画された
  • との差: 粉砂糖と粉砂糖の違い

    粉砂糖と粉砂糖の違い

    主な違い: 基本的に、粉砂糖と粉砂糖は同じものです。 それはキャスター砂糖よりもさらに細かい、超上質な砂糖です。 それはしばしば10X砂糖または菓子の砂糖とも呼ばれます。 フランスでは、それはSucre Glaceと呼ばれています。 砂糖の結晶の大きさは、砂糖が0.060 mm、アイシング砂糖が0.024 mmであるのに対し、10×砂糖は通常0.010 mmです。 粉砂糖はその名の下にこれらすべてを覆っています。 砂糖は、甘い風味の食品物質の総称です。 糖は炭水化物に分類されます。炭水化物は、炭素、水素、酸素からなる化合物のグループです。 炭水化物、そして砂糖は、人間を含む生物の化学エネルギー源です。 糖は単糖類、二糖類および多糖類に分類される。 単糖類は最も単純な炭水化物タイプで、単一の分子で構成され
  • との差: JPGとJPEGの違い

    JPGとJPEGの違い

    主な違い: JPGとJPEGは基本的に同じものです。 デジタル画像を保存するためのファイル形式の一種です。 JPG、もともとJPEGはJoint Photographic Expert Groupの略です。 JPEG画像のファイル名は.jpgまたは.jpegです。 使用される文字数以外は、実際にはJPGとJPEGの間に違いはありません。 JPGとJPEGは基本的に同じものです。 デジタル画像を保存するためのファイル形式の一種です。 JPG、もともとJPEGはJoint Photographic Expert Groupの略です。 JPEG画像のファイル名は.jpgまたは.jpegです。 使用される文字数以外は、実際にはJPGとJPEGの間に違いはありません。 JPEGは写真に最もよく使われるフォーマットです。 カラー写真やブレンドやグラデーションが多い画像に特に適しています。 ただし、エッジが鋭い場合は最適ではなく、少しぼやける可能性があります。 これは主にJPEGがデジタル写真のための非可逆圧縮の方法であるためです。 これは、JPEG形式で画像を保存している間、圧縮による品質のわずかな損失があることを意味します。 したがって、JPEGは、何度も編集を続け、画像を保存し直す必要がある場合に最適な形式ではありません。 再保存するたびに、圧縮による品質のわずかな低下があります。
  • との差: 週と弱の違い

    週と弱の違い

    主な違い: 週、弱いという言葉は同義語、つまり発音は同じだが意味が異なる単語です。 1週間は7日間で、通常は日曜日から土曜日までです。 弱は、何かを達成するため、または与えられたタスクを完了するために、何かまたは何かの力を欠いている人を説明するために使用されます。 言語は難しいです。 彼らは新しい学習者にとって非常に面倒である可能性があるだけでなく、彼らはしばしばネイティブスピーカーも混同します。 言語を簡単にするのに役立たないことの一つは同義語です。 同義語は、発音は同じですが意味が異なる単語です。 週、弱いという言葉はそのような言葉です。 それらは同じように発音され、文字通り音節が異なるわけではありませんが、それらの意味をさらに分離することはできません。 「週」という用語は名詞です。つまり、何かの名前として使用されています。 1週間は7日間で、通常は日曜日から土曜日までです。 週を月曜日から日曜日までと数える人もいます。 曜日は、日曜日、月曜日、火曜日、水曜日、木曜日、金曜日、および土曜日です。 1週間はしばしば時間の尺度として使われます。 週に7日と月に4週があります。 週はしばしば平日と週末としてさらに分類されます。 一週間に五平日あります。 月曜日、火曜日、水曜日、木曜日、および金曜日です。 彼らはしばしば就業日です、すなわち、ほとんどの人はこれらの日に仕事に行きます。 一
  • との差: Sony Xperia SPとSony Xperia Zの違い

    Sony Xperia SPとSony Xperia Zの違い

    主な違い: Xperia SPは、オールアルミ製の本体に収められている4.6インチTFTの容量性タッチスクリーンフォンです。 厚さは10mm以下で、重量は約155グラムです。 SPは、2G、3GおよびLTEネットワーク上で動作し(市場の入手可能性に応じて、1.7 GHzのクアルコムSnapdragonデュアルコアプロセッサを搭載しています。SonyXperia Zは最新のスマートフォンです) Xperia Zは、5インチTFTタッチスクリーンを搭載した、約441 ppiピクセル密度のシャープでクリアなディスプレイを実現するバーフォンです。クアッドコアKrait、最大16 GBの内部メモリストレージ容量と最大32 GBの拡張可能
  • との差: エボラとインフルエンザの違い

    エボラとインフルエンザの違い

    主な違い: エボラはまれで致命的な病気で、感染した人々の25%から90%が死亡します。 インフルエンザは季節性の流行で世界中に広まり、エボラよりも一般的であり、毎年数百万人に影響を及ぼしています。 エボラの2014年の発生により、多くの人々がエボラと接触して感染することを恐れています。 しかし、誰かがEbolaを発症する可能性、特に広範囲に及ぶEbolaの発生がある国にいない人が発生する可能性は非常にまれです。 代わりに、人がインフルエンザにかかる可能性が高いです。 これは主に2つの病気が広がる方法によるものです。 インフルエンザは簡単に広がるため、毎年ほぼ流行しています。 インフルエンザは、インフルエンザのせき、くしゃみ、または話している人が作ったときにできる小滴を通って広がることがあります。 カウンター、ドアノブなどの表面を汚染することで拡散することもあります。ただし、この方法はあまり一般的ではありません。 エボラ、他方では広がることは非常に難しいです。 血液、唾液、粘液、嘔吐物、糞便、汗、涙、母乳、尿、感染者の精液などの体液と直接接触するようになることによってのみ、エボラと契約することができます。 ウイルスは鼻、口、目、開いた傷、切り傷そして擦り傷を通して感染していない人の体に侵入しなければなりません。 さらに、ウイルスを拡散させるためには、感染した人はすでに2から21日の間に
  • との差: OTGとマイクロ波の違い

    OTGとマイクロ波の違い

    主な違い: OTGはオーブン、トースター、グリラーの略で、トースターオーブンの別名です。 OTGオーブンは多くの点で彼らの兄に似ている小さな電気オーブンです。 彼らは正面玄関、取り外し可能なワイヤーラックとベーキングパンを持っています。 電子レンジは食べ物を加熱するために電子レンジを使うオーブンの一種です。 マイクロ波は、電磁波スペクトル上で電波と赤外線との間に挟まれる一種の電磁波である。 火が発見されてからオーブンが存在してきました。 彼らは私たちの生活や幸福に重要な役割を果たしています。 市場ではさまざまな種類のオーブンが用意されているため、調理や食べ物の加熱などの作業が簡単になります。 最も古いオーブンでは、キンドリング、火、手動温度管理および調理が必要でした。 最新の技術により、オーブンはノブを回すだけでボタンを押すだけで自動的にこれらの機能を実現できます。 単に焼くか乾杯するための特定の目的のためにリリースされているオーブンにはさまざまな種類があります。 OTGは、少量の食品を焼き、焼き、調理する場合に便利ですが、電子レンジは加熱が速く、食品を温めたり、特定の種類の調理に適しています。 OTGはオーブン、トースター、グリラーの略で、トースターオーブンの別名です。 OTGオーブンは多くの点で彼らの兄に似ている小さな電気オーブンです。 彼らは正面玄関、取り外し可能なワイヤーラッ
  • との差: Pachisi、Ludo、Parcheesiの違い

    Pachisi、Ludo、Parcheesiの違い

    主な違い: LudoとParcheesiは2つの異なるボードゲームで、本質的に似ています。 両方ともPachisiと呼ばれる古代インドのゲームから発展しました。 3つすべてに同じ目的があります。つまり、最初にゴールラインを越えて4つのトークンを取得することです。 LudoとParcheesiは、性質が非常に似ている2つの異なるボードゲームです。 実際、それらはどちらも非常に似ているため、お互いに間違えられることがよくあります。 この背景にある理由は、両方ともPachisiと呼ばれる古代のゲームから発展したという事実によるものです。 Pachisiは古代インドで始まったクロスとサークルボードゲームの一種です。 ゲームは何百年も前から出回っていて、当時も今も非常に人気があります。 ゲームは布の上で行われました、そこでそれは家に帰る前に小さなトークンがボードの周りを動くことを要求されるでしょう。 それは一般的に2〜4人の間でプレイされ、最初の人が彼らのトークンの全てをエンドラインで獲得しました。 ゲームプレイはプレーヤーに6または7のカウリーシェルを投げることを要求し、そして直面したシェルの数と下に向かったシェルの数に応じて、プレーヤーは彼らのトークンを適切な数のスペースに移動させるでしょう。 実際、Pachisiという名前は、実際には25に変換されます。これは、ゲーム内でロールできる最大
  • との差: 民主党と共和党の違い

    民主党と共和党の違い

    主な違い: 民主党は、左右の政治的枠組みの中で、左派中心に立つことを表明しています。 それは社会的自由主義と進歩的なプラットフォームを促進しました。 共和党は民主党の最大の競争相手です。 それは、それ自体が左右の政治的スペクトルの右翼であると考えており、そしてアメリカの保守主義を誇りにしています。 アメリカ合衆国では、民主党と共和党が最大の政党です。 米国は現在、2者間システムと見なされています。 1852年以降のアメリカ合衆国の各大統領は、これらの政党のいずれかに属していました。 両当事者は、少なくとも1856年以来、ある程度まで議会を統制してきました。 民主党は、左から右への政治的枠組みの中で、左派中心に立つことを表明している。 それは米国で最も古い党の1つ、実際には世界です。 それは社会的自由主義と進歩的なプラットフォームを促進しました。 その議会委員会は、進歩主義者、自由主義者、中心主義者、そして自由主義者で構成されています。 バラクオバマ大統領と元大統領ビルクリントン、ジミーカーター、リンドンB.ジョンソン、ジョンF.ケネディ、ハリーS.トルーマン、フランクリンD.ルーズベルト、そしてウッドローウィルソンは民主党に属していました。 共和党は民主党の最大の競争相手です。 それは、それ自体が左右の政治的スペクトルの右翼であると考えており、そしてアメリカの保守主義を誇りにしていま

エディターズチョイス

間違いと間違いの違い

主な違い: 間違いと間違いは、実際には互いに同義語である2つの異なる単語です。 それらは同じことを意味しますが、異なる文脈で使われます。 誤りと誤りは、実際には互いに同義語である2つの異なる単語です。 それらは同じことを意味し、間違って行われたか間違ったことを意味します。 これは、不適切な判断、不注意、または焦点の欠如による可能性があります。 両者の主な違いは、それらが使われている文脈です。 Merriam Websterは 'error'を次のように定義しています。 行動規範からの無知な、または不本意な逸脱の行為または状態 意図的でない真実または正確さからの逸脱を含む行為 無知、欠乏、または事故によって出発点から逸脱する、または達成に失敗する行為 法律上または事実上の裁判所の訴訟手続における誤り エラーの品質または状態 クリスチャンサイエンス:人間の苦しみの原因である現実の本質についての幻想:真実の矛盾 誤った信念の例 誤って作成されたもの。 特に:製造時に(誤った色として)一貫した欠陥を示す郵便切手 観測値または計算値と真の値の差。 具体的には:間違いや制御不能な要因による数量の測定、計算、または観察の変動 規格または仕様からの逸脱量 構造または機能の欠陥または不完全性 この用語は、野球でも使用されており、Dictionary.comでは「ベースランナーが安全にベ