例による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;

推奨されます

関連記事

  • との差: ネイティブアプリとハイブリッドアプリの違い

    ネイティブアプリとハイブリッドアプリの違い

    主な違い: ネイティブアプリは、モバイルシステム用に特別に開発されたアプリケーションです。 ネイティブアプリは、プラットフォームSDK、特定のプラットフォーム用のツールおよび言語を使用して開発されています。 ハイブリッドアプリは、他のアプリとは異なり、HTML 5、CSS、JavaScriptなどのWeb言語で開発されたアプリです。 これらのアプリケーションはネイティブコンテナで実行されるため、あらゆるモバイルシステムで実行できます。 アプリとは、applicationの略で、特定の目的を果たすために使用できるプログラムまたはプログラムのグループです。 私たちが使用するソフトウェアはすべて技術的なアプリケーションですが、「アプリ」という用語は、Android、iOS、Windows Mobile、Blackberryなどのモバイルシステムで使用されるアプリケーションとの関連で一般的に使用されています。 アプリケーションには、主に2つの種類があります。ネイティブアプリとハイブリッドアプリです。 ユーザーの観点から見たアプリケーションは同じです。 ただし、アプリ間の実際の違いは、それらが開発されたシステムにのみあります。 ネイティブアプリは、モバイルシステム用に特別に開発されたアプリケーションです。 たとえば、iOS用に開発されたアプリです。 このアプリは、Androidなどの他のモバイ
  • との差: コンセプトとテーマの違い

    コンセプトとテーマの違い

    主な違い :コンセプトとテーマの主な違いは、物語や映画、イベントなどに関するコンセプトは、時々ユニークであり、通常のやり方とは異なる表現と実行をされますが、テーマはユニークではなく一般的なものですたとえば、カテゴリのように、無数のロマンチックな(テーマ)ストーリーがありますが、限られた歴史的ロマンス(コンセプト)のストーリーが見られます。 したがって、テーマはより広いのに対し、コンセプトは特定のアイデアに限定されます。 これが、1つのテーマの下で複数の概念を持つことができる場所で相互にリンクされている理由です。 概念: 概念は名詞であり、一般的な概念または精神的に形成されたアイデアとして定義され、すべての特性または特定のものを組み合わせたものです。 単語の起源は何かを意味する中世ラテン語Conceptumからのものです。 広告の概念は、マーケティングまたは広告キャンペーンがそのまわりで組織される主なアイデアの簡潔で明確なナレーションとして定義されます。 たとえば、ストーリーのコンセプトがストーリーまたはプランの主なアイデアであるように、さまざまなカテゴリのコンセプトが異なる方法で定義されています。 概念は物語が始まり、結局それが物語を終わらせるところです。 それは全体的なアイデアであると言われ、そのまわりでテーマが展開し、そこではコンセプトがコアアイデアを描いたデザインのベースになり
  • との差: ロティとチャパティの違い

    ロティとチャパティの違い

    主な違い: インド料理に関しては、RotiとChapatiという用語がよく使用されます。 一般的に言えば、ロティはインドのフラットブレッドの一種です。 ロティにはさまざまな種類がありますが、そのうちの1つはチャパティです。これは、全粒小麦粉から作られ、平らなフライパンの一種であるタバで調理されたロティの一種です。 ロティとチャパティという用語は、インド料理に関しては頻繁に使用されます。 実際、それらはほとんどインド料理の主食であり、インド料理のすべてではないにしても多くても多くても存在しています。 しかし、roti、chapatti、phulkaなどのさまざまな用語を使用できます。 そのような様々な用語の用法は、インド人以外の人々だけでなく、インド人も混乱させます。 この用語の背後にある混乱は、インドにはさまざまな文化や言語が使われているという事実から来ています。 誰もが同じものや似たものに対して異なる名前を持っています。 一般的に言えば、ロティは全粒小麦粉から作られるインドのフラットブレッドの一種で、地元ではアッタと呼ばれています。 しかし、何人かの人々は万能粉(maida)またはattaとmaidaの混合物を使う傾向があります。 ほとんどの家庭では、attaが使われています。 生地混合物は、attaと水から作られます。 味のために塩を加える傾向がある人もいればそうでない人もいます
  • との差: 有形と無形の違い

    有形と無形の違い

    主な違い:「 有形」とは、見たり触れたりできるものを指します。 これらは私たちの周りに存在するもののほとんどです。 無形とは、一方で、見えても見えなくてもいいものを指しますが、絶対に触れることはできません。 有形無形の概念は、理解するのが少し難しいかもしれませんが、それほど難しいことではありません。 有形と無形は、何かを表現するための2つの方法です。 オブジェクトは、有形または無形のどちらでもかまいません。 有形とは、見たり触れたりできるものを指します。 これらは私たちの周りに存在するもののほとんどです。 例えば、椅子、テーブルなど。これらは見たり触れたりすることができる物理的なものです。したがって、これらのものは有形であると言えます。 無形とは、一方で、見えても見えなくてもいいものを指しますが、絶対に触れることはできません。 オブジェクトは現実のものであり、存在しますが、物理的な存在はありません。 例えば、空気や月明かりです。 これらのものが存在し、それを見ることも感じることもできますが、物理的に触れることはできません。 したがって、これらのことは無形です。 無形物の別の例は感情です。 それらも存在しますが、見たり触れたりすることはできません。 彼らは感じることができ、表現することができます。
  • との差: ISISとアルカイダの違い

    ISISとアルカイダの違い

    主な違い: ISISは、イラクとシリアのイスラム国家、またはイラクとアルシャムのイスラム国家を表します。 ISISは主に、兵士、民間人、ジャーナリスト、援助活動家の出頭を示す一連のビデオで知られています。 ISISはイラクでアルカイダとして始まりました。 アルカイダは、オサマビンラディンが率いる世界的な過激派イスラム教団体です。 アルカイダは9月11日の攻撃を含む多くの攻撃を標的に行った。 テロリズムは常に問題となっていますが、この10年間で本当に世界的な問題になりました。 これは、ISIS、アルカイダ、タリバンなどの過激派グループによるものです。 ISISは、イラクとシリアのイスラム国家、またはイラクとアル・シャムのイスラム国家を表します。 しかし、このグループは一般にイラクとレバントのイスラム国家(ISIL)としても知られています。 グループのアラビア語の名前は、アラビア語の頭字語Da'ishまたはDAESHにつながるad-Dawlah al-Islāmīyahfīal-'Irāqwash-Shāmとして音訳されています。 また、2014年6月に、グループは正式にその名前をイスラム国家(IS)に変更しました。 しかし、この名前は国連や他のさまざまな政府とともに広く批判され、非難されてきており、主流のイスラム教徒グループはそれを使用することを拒否しています。 ISI
  • との差: 潰瘍とがんの違い

    潰瘍とがんの違い

    主な違い: 潰瘍は、正確には細菌、ヘリコバクターピロリ(H.ピロリ)細菌によって引き起こされる疾患です。 バクテリアは粘液の内層を弱める物質を作り、胃をやけどさせます。 悪性新生物として医学的に知られている癌は、細胞が急速に分裂して増殖し、周囲の臓器に害を及ぼしたり、体の他の部分に壊れたり移動したりする可能性がある病状です。 人体は自動モードで動作する複雑なシステムです。 ただし、すべての正常なマシンと同様に、グリッチや機能不全が発生することがあります。 人体もまたこのような異常に悩まされ、それはグリッチを引き起こしそして身体機能が適切に機能しなくなる原因となる。 これらは体が苦しむ病気として知られています。 潰瘍および癌は、2つの異なる種類の疾患として分類されるが、潰瘍が癌性細胞に発達する可能性があるので関連している。 潰瘍は細菌によって引き起こされる病気ですが、正確にはヘリコバクターピロリ(H. pylori)細菌です。 この種の細菌は、それが胃の粘液層を通って泳ぐことおよび粘液層を弱める物質を産生することを可能にするらせん形状を有する。 これは酸が胃の内側を燃やす原因となり、灼熱感と胃の痛みをもたらします。 それらはまた、胃の細胞に付着して炎症を引き起こし、胃に過剰の酸を産生させる可能性があります。 この病気は症状を示すこともあればしないこともあり、診断がはるかに困難になります
  • との差: チェックとレビューの違い

    チェックとレビューの違い

    主な違い :CheckとReviewの両方の単語は名詞ですが、主な違いは両方の単語の意味にあります。 チェックは正確さを探すこと、または特定の規格を検査することを意味しますが、レビューは2回目以降のコンテキストまたはコンテンツの読み取りです。 チェック: 「チェック」という言葉は、状況を調べたり、調べたり、調べたりすることを意味する名詞です。この単語には、次のような他の異なる意味もあります。 チェックマークを付けます。 情報源を調べて検証する。 テストや試験のように検査または評価するための標準。 例えば、私の気分を抑えているように、止められたり、遅らされたりする状態。 確認することは、確認することを意味します。 形容詞として使用されるときの単語は、例えば市松模様のネクタイや動詞のチェックなどのようにチェックされます。 チェックとは、何かを「見直す」のに必要な種類の深さではなく、特定のことを徹底的にチェックすることです。
  • との差: 固体と気体の違い

    固体と気体の違い

    主な違い: 固体、液体、気体、プラズマは、地球上で物体を見つけることができる4つの主要な物質の状態です。 固体は、一定の形状および一定の体積を有する物質の状態です。 気体は、明確な形や体積を持たない物質の状態です。 気体は、1種類の原子またはさまざまな原子から作られた化合物分子で構成されています。 固体、液体、気体、プラズマは、地球上で物体が見つかる物質の4つの主要な状態です。 ほとんどすべての物質は、これら4つの州のいずれかにあります。 水は、4つの状態のうち3つ(氷(固体)、水(液体)、蒸気(気体))に豊富に見られるため、物質の状態を記述するのに使用できる最良の例です。 一方、照明やネオンガスはプラズマとして構成されています。 固体は、一定の形状および一定の体積を有する物質の状態です。 固体は、化学結合によって結合している原子や分子などの物質の小さな粒子で構成されています。 原子と分子はしっかりと固定されているため、固体の形状や体積を変えることはできません。 したがって、固体は液体のように容器の形状を埋めることも、気体のように容器のあらゆる空間を埋めることもできません。 固体中の原子と分子は、規則的な幾何学的格子または不規則に互いに密接に結合しています。 規則的な幾何学的格子は最も一般的であり、氷を含むほとんどの固体に見出すことができます。 不規則に結合した原子を含む固体は、非晶
  • との差: TwitterとFacebookの違い

    TwitterとFacebookの違い

    主な違い: TwitterとFacebookは、2つの異なるソーシャルネットワーキングWebサイトです。 彼らは本質的に彼らの化粧とそれらが使用されている方法で異なります。 両者の主な違いは、Facebookはソーシャルネットワーキングサービスですが、Twitterはソーシャルネットワーキングサービスとマイクロブログサービスであるという事実です。 TwitterとFacebookは、2つの異なるソーシャルネットワーキングWebサイトです。 彼らは本質的に彼らの化粧とそれらが使用されている方法で異なります。 両者の主な違いは、Facebookはソーシャルネットワーキングサービスですが、Twitterはソーシャルネットワーキングサービスとマイクロブログサービスであるという事実です。 Facebookはハーバード大学の彼の大学のルームメートと協力して2004年2月にMark Zuckerbergによって開始されました:Eduardo Saverin、Andrew McCollum、Dustin MoskovitzおよびChris Hughes。 現在はMark Zuckerbergが率いる公募企業であるFacebook、Inc.が所有し運営しています。 Facebookは、ユーザーが友人と連絡を取り合い、写真をアップロードし、他の人の身分や写真についてコメントしたり、壁に書いたり、メッセー

エディターズチョイス

LTEとVoLTEの違い

主な違い: VoLTEネットワークは、音声とデータの両方を同時にサポートします。 一方、従来のLTEネットワークは、データと音声を一緒にサポートしている場合もあれば、サポートしていない場合もあり、音声通話の品質に影響を与える場合もあります。 LTEとVoLTEという用語は、特にマーケティングのために、多くの場合使用されているため、その意味はしばしば混乱し混乱しています。 あまりにも多くのため、消費者はしばしばその用語が何を意味するのか、彼らが何を意味するのかを知らない。 LTEとVoLTEという用語はマーケティングのために一緒に使用されることが多いですが、実際には2つはまったく異なるものですが、一方は他方に依存します。 LTEは基本的に4Gネットワ​​ーク、あるいは4Gネットワ​​ークへの導入です。 最初に2Gが登場し、次に3Gが登場しましたが、3GPP(3rd Generation Partnership Project)で説明されているように、4Gが存在する段階まで技術は進歩していません。 ただし、テクノロジと速度は3G以上に向上しています。 したがって、LTE、3Gと真の4Gの間のネットワークです。 LTEはLong-Term Evolutionの略です。 実際には、それはしばしばLTE 4Gまたは4G LTEとして販売されています。 つまり、LTEは2Gや3Gに似た種類のネッ