- 歴史
- 設計と実装
- 初回リリース
- C 2.0
- 標準化されたバージョン
- 最近の更新
- C ++の機能
- 人気の言語
- オブジェクト指向
- 手続き型
- 構造化プログラミング
- メモリ管理
- ポインタ
- コンパイルされた言語
- C ++のデータ型
- -プライマリ
- Int
- 浮く
- シャア
- ダブル
- 空(Null)
- ブール
- -二次
- 段取り
- ポインタ
- 特徴
- - ユーザー定義の
- 構造
- 連合
- C ++とは何ですか?用途
- 用途
- オペレーティングシステム
- コンパイラ
- ゲーム
- ウェブブラウザー
- モノのインターネット
- クラウド/分散システム
- データベースへのアクセス
- 例
- 図書館
- 利点
- 速度
- ハードウェアに近い
- 効率
- プログラミングスタイルを選択する自由
- 複雑な問題を解決する能力
- 実行前にエラーを検出する機能
- 短所
- ポインタの使用
- セキュリティ上の問題
- ガベージコレクターなし
- 糸の不在
- コンパイルされたプログラム
- 複雑になる可能性があります
- 参考文献
C ++は、Cプログラミング言語の改良および拡張バージョンであり、Pr.D。プロジェクトの一環として1979年にStroustrupによって開発されました。Stroustrupは、既存のプログラミング言語には制限があり、大規模なプロジェクトには最適ではないと信じていたため、「C with classes」(後でC ++と呼ばれる)を設計しました。
そのため、Cを使用して探していたプログラミング言語を開発しました。これは、Cが効果的な言語であり、高速に動作するためです。
出典:pixabay.com
C ++は、洗練された強力な汎用プログラミング言語です。このコンパイルされた自由形式の言語は、中級レベルのプログラマーに最適です。
ただし、C ++でプログラミングを開始したい人は、自分のキャリアで長い道のりとなるプログラミングの概念をすぐに学ぶことができることに気付くでしょう。
オブジェクト指向プログラミングと互換性があり、そのすべての特性を備えています。これらの概念によりC ++言語は異なり、主に、簡単で概念化された方法でアプリケーションを開発するために使用されます。
歴史
設計と実装
C ++は1980年にAT&T Bell LabsのBjarne Stroustrupによって設計および実装され、手続き型プログラミングとオブジェクト指向プログラミングの概念を美しく融合させました。
C言語では、演算子++を使用して変数をインクリメントするため、C ++がC言語の次世代であるというStroustrupの考えが明らかになります。
初回リリース
C ++は、市場で初めて1985年にリリースされました。1986年、Stroustrupは著書「The C ++ Programming Language」を出版し、この言語のリファレンスマニュアルとなっています。
C 2.0
C ++の最も重要なリリースは、1989年のC 2.0で、EllisとStroustrupによってC ++注釈付きリファレンスマニュアルに記載されています。それは完全にオブジェクト指向の言語でした。
標準化されたバージョン
最初の標準化バージョンであるC ++ 98は1998年にリリースされました。このC ++の国際標準は、米国規格協会(ANSI)および国際標準化機構(ISO)によって開発されました。
2003年、次のC ++ 03標準は、C ++ 98で識別されたエラーを修正し、言語の移植性と一貫性を高めることを目的として公開されました。
最近の更新
言語の次の主要な更新は2011年に行われ、C ++ 11と呼ばれました。ランタイムパフォーマンスを向上させるために、いくつかの機能が追加されました。
その後、C ++ 14がリリースされ、いくつかの改善が行われ、C ++ 11のバグが修正されました。2017年にリリースされた次のバージョンはC ++ 17で、いくつかの新機能とはるかに広範な標準ライブラリを備えています。
C ++の機能
人気の言語
C ++は、主にアプリケーションで開発者によって広く使用されています。変数、データ型、リテラルなど、必要な開発ブロックをすべて提供するコア言語のように、すべての重要な部分が含まれています。
TIOBEプログラミングコミュニティインデックスによると、これは4番目に人気のあるプログラミング言語です。
C ++の使用は、その特性により、C ++を最も便利な言語にします。これは、プログラミング言語での作業に興味がある開発者にとって最初の起動言語です。純粋に概念ベースの言語であるため、簡単に習得できます。
その構文は非常に単純で、簡単に記述でき、エラーは簡単に複製できます。他の言語を使用する前に、プログラマーは最初にC ++を学び、次に他のものを使用することを好みました。
ただし、ほとんどの開発者は、C ++を使用しようとしています。これは、さまざまな用途と、複数のプラットフォームおよびソフトウェアとの互換性のためです。
オブジェクト指向
CからC ++への主なアップグレードは、オブジェクト指向プログラミングです。つまり、焦点は「オブジェクト」とこれらのオブジェクトの周囲の処理にあります。
ポリモーフィズム、継承、カプセル化、抽象化の概念に従い、開発と保守を容易にします。
手続き型
C ++は、個々のタスクを実行するために「呼び出す」ことができる再利用可能なブロックでコードのセグメントを囲む、プロシージャとサブルーチンの概念をサポートしています。
プロシージャとサブルーチンは、C ++では関数として知られています。関数は0個以上のパラメーターを取り、0個または値を返すことができます。
構造化プログラミング
C ++コードはモジュール式であり、関数、クラス、オブジェクトをサポートし、モジュールは自由に適合します。
C ++のフロー制御ステートメントは、他の多くの構造化プログラミング言語で見られるものと似ています。これらは、決定ロジックを実装する場合はif-else、反復またはループを実装する場合はfor、while、do-whileです。
メモリ管理
C ++は動的メモリ割り当てをサポートしています。したがって、割り当てられたメモリはいつでも解放できます。
ポインタ
これらは、別の変数のアドレスを格納する変数です。ポインタは変数のメモリ位置を指します。C ++はポインターをサポートし、メモリー位置へのアクセスを必要とする多くの問題の解決策を提供します。
コンパイルされた言語
C ++プログラムは、実行する前に、コンパイラと呼ばれるプログラムによってターゲットマシンのネイティブ命令に変換する必要があります。コンパイルしないと、C ++プログラムは実行できません。コンパイラーは、後で実行できるようにC ++プログラムをコンパイルします。
C ++のデータ型
-プライマリ
Int
整数を格納するために使用されます。それが占有するメモリは、コンパイラ(32ビットまたは64ビット)によって異なります。32ビットのコンパイラを使用する場合、4バイトのメモリを占有します。
浮く
7桁までの小数を格納するために使用されます。単精度浮動小数点型と呼ばれます。4バイトのメモリを占有します。
シャア
すべての文字のセットを格納するために使用されます。アルファベット、数字、特殊文字を含めることができます。これは1バイトのメモリを占有し、マシンでアドレス可能な最小単位です。
ダブル
15から16桁までの小数を格納するために使用されます。一般に倍精度浮動小数点型と呼ばれます。
空(Null)
ゼロまたはゼロの戻り値を示します。通常、関数を宣言するときにnull値を割り当てるために使用されます。
ブール
このデータ型はブール値または論理値を参照します。trueまたはfalseの値を取ることができます。
-二次
段取り
これは、共通の名前でアクセスされる同じタイプのデータを持つデータのセットです。
ポインタ
それらは基本的に、別の変数のメモリアドレスを格納するために使用される変数です。
特徴
特定のタスクを実行する文のグループです。関数は、組み込みまたはユーザー定義のライブラリです。
- ユーザー定義の
構造
これは、さまざまなタイプのデータのコレクションを作成し、オブジェクトを介してアクセスできるタイプのデータです。
連合
異なるタイプのデータを同じメモリ位置に格納する機能を提供します。
C ++とは何ですか?用途
用途
アドビシステム上の多くのアプリケーションは、Illustrator、Photoshop、Adobe Premiere、Image ReadyなどのC ++で開発されています。
オペレーティングシステム
C ++は低レベルのプログラミング言語であるため、Linux、Windows、macOSなどのすべての主要なオペレーティングシステムで使用されています。
コンパイラ
ほとんどのコンパイラはC ++言語で記述されています。また、C#、Javaなどの他の言語をコンパイルするために使用されるコンパイラ。
ゲーム
3Dゲームの複雑さを排除し、リソースの最適化に役立ちます。さらに、ネットワークのマルチプレイヤーオプションと互換性があります。
ウェブブラウザー
これにより、グラフィックの高速実行と表現が可能になります。これは、Webブラウザーにすばやく表示できるコンテンツを要求する現在のユーザーにとって重要です。C ++は、インターネットブラウザーをGoogle ChromeおよびMozilla Firefoxにするために使用されました。
モノのインターネット
スマートウォッチ、自動車、洗濯機、ルーター、スイッチなどのいくつかのInternet of Things製品は、ハードウェアに可能な限り近いコードを必要とするため、C ++を使用します。
クラウド/分散システム
これは、スケーラブルなファイルシステムがハードウェアと緊密に連携する必要があるストレージシステムや分散システムのクラウドで使用され、さまざまなマシンとの互換性も重要です。
データベースへのアクセス
オープンソースデータベースソフトウェアの開発に使用されます。組織で使用されている非常に人気のあるデータベース管理ソフトウェアであるMySQLは、C ++で提供される利点のおかげで書かれています。
Wikipedia、Yahoo、YouTube、Quoraなどのデータベースソフトウェアへのアクセスに基づく他のアプリケーションがあります。
例
このプログラムは、ユーザーから正の整数を受け取り、変数nに格納します。次にforループが実行され、入力された数値がioで完全に割り切れるかどうかがチェックされます。
forループは、iの初期値が2で始まり、反復ごとにiの値を増やします。ユーザーが入力した数値がiで完全に割り切れる場合、isPrimeはfalseに設定され、数値は素数にはなりません。
ただし、テスト条件i <= n / 2がtrueになるまで数値がiで完全に割り切れない場合は、1とその同じ数で割り切れるだけであることを意味します。したがって、与えられた数は素数です。
図書館
開発者は、C ++言語によって提供される多くの組み込み関数にアクセスできます。これは時間を節約し、開発をスピードアップします。提供されている機能を備えたC ++ヘッダーファイルの一部を次に示します。
-iomanip:データフローをフォーマットするフローハンドラーが含まれています。
-iostream:標準の入出力関数が含まれています。
-cstdlib:数値をテキストに、またはその逆に変換する関数が含まれています。
-cmath:数学ライブラリ関数、メモリ割り当て、乱数、その他のさまざまな便利な関数が含まれています。
-fstream:ディスク上のファイルの入出力を実行する関数が含まれています。
-ctime:時刻と日付を処理する関数が含まれています。
-メモリ:メモリを割り当てるためにC ++標準ライブラリで使用されるクラスと関数が含まれます。
利点
速度
C ++は低レベルのプログラミング言語であるCの拡張バージョンであるため、利用可能な最高速の言語の1つです。これにより、必要なパフォーマンスが重要な領域で役立ちます。
ハードウェアに近い
C ++は、ハードウェアに最も近いプログラミング言語の1つです。これは、低レベルのサポートを効率的に実行するためにソフトウェアがハードウェアと密接な関係を持たなければならないスペースで非常に有利です。
効率
C ++には、コーディング時に広く使用できるテンプレートの標準ライブラリがあります。これらのライブラリーは、プログラマーが時間と労力を節約できる効率的なアルゴリズムを提供します。
プログラミングスタイルを選択する自由
C ++は、約7つの異なるスタイルのコーディングをサポートしているため、マルチモデルのプログラミング言語となっています。したがって、オブジェクトを使用せずに、特定のユースケースに適したスタイルを選択できます。
複雑な問題を解決する能力
C ++は、オブジェクトを作成することにより、複雑な問題を直感的に解決できます。さらに、C ++関数を使用すると、コードを明確で理解しやすく、テストと変更が容易なコードブロックに分割できます。
実行前にエラーを検出する機能
C ++には静的型があります。つまり、コンパイラーはプログラマーが何を書いたかについて何も想定していません。利点は、コンパイラーが実行前にエラーや障害をキャッチできるため、長期的には時間を節約できることです。
短所
ポインタの使用
ポインタは理解するのが比較的難しい概念であり、多くのメモリを消費します。ポインターの誤用により、システムがハングしたり、異常な動作をする可能性があります。
主な問題は、データが2つの異なる開始点から同じものを指している場合に、重大な問題を引き起こし、エンコーディング内で混乱する問題を生成することです。
セキュリティ上の問題
オブジェクト指向プログラミングは、処理されるデータに多くのセキュリティを提供しますが、フレンド関数、グローバル変数、およびポインタを利用できるため、依然としていくつかのセキュリティ問題があります。
ガベージコレクターなし
C ++は、ユーザーにコンピュータのメモリの管理を完全に制御させます。不要なデータを自動的に除外するガベージコレクターの機能がないため、動的メモリ割り当てをサポートしていません。
糸の不在
C ++は組み込みスレッドをサポートしていません。スレッドの概念は、元々存在していなかったため、C ++では比較的新しいものです。現在、C ++はラムダ関数をサポートできます。
コンパイルされたプログラム
コンパイル言語として、ソースコードからコンパイラによって生成された実行可能ファイルは移植性がなく、コンパイルされたターゲットプラットフォーム(ハードウェアとオペレーティングシステム)、またはサポートされているバイナリプラットフォームでのみ実行されます。
複雑になる可能性があります
C ++は、同じ名前の関数であるクラスを許可するため、複雑になる可能性があります。したがって、シンボル処理システムを使用する必要があります。さらに、非常に大規模な高レベルのプログラムにとっては複雑です。C ++は、プラットフォーム固有のアプリケーションで一般的に使用されます。
参考文献
- Simplilearn(2020)。初心者のためのC ++プログラミング:歴史、利点、アプリケーション。simplilearn.comから取得。
- Educba(2020)。実世界でのC ++の使用。educba.comから取得。
- Dmitrii Rassokhin(2020)。化学情報学および計算化学におけるC ++プログラミング言語。Cheminformaticsのジャーナル。取得元:jcheminf.biomedcentral.com。
- エドゥレカ!(2020)。C ++のトップ10機能は何ですか?出典:edureka.co。
- アマン・ゴール(2020)。C ++言語:機能、使用、アプリケーション、および利点。ハック。hackr.ioから取得。
- Steemit(2020)。C ++:コーディングを学ぶ。C ++言語の歴史、利点、欠点。取得元:steemit.com。
- データフレア(2019年)。わずか4分で、例を使用してCおよびC ++のデータ型を学習します。取得元:data-flair.training。