C ++ノートの再学習(1)基本的な紹介

C ++には、次の3つの異なるプログラミング方法が組み込まれています。

  • C言語で表される手続き型言語
  • C ++は C言語に基づいて追加されたクラスによって表されるオブジェクト指向言語(OOP、オブジェクト指向プログラミング)です。
  • ジェネリックプログラミングのC ++テンプレートサポート(ジェネリックプログラミング)

1.C言語

1970年代初頭、ベル研究所のデニスリッチーはUNIXオペレーティングシステムの開発に取り組みました。この作業を達成するために、リッチーは言語を必要とします。それは簡潔でなければならず、簡潔で高速なプログラムを生成でき、ハードウェアを効果的に制御できます。従来、プログラマーはこれらのニーズを満たすためにアセンブリ言語を使用していました。アセンブリ言語はコンピューターの内部機械語に依存しており、ハードウェアを直接操作する低水準言語(低水準)に属しています。ハードウェアを交換したら、プログラムを書き直すために別のアセンブリ言語が必要になりますそこでリッチーは古い言語に基づいてC言語を開発しました。

C言語は構造化言語であり、forループ、whileループ、if elseステートメントが含まれています。その原則はトップダウンです。プログラマーが各タスクモジュールを表すプログラムユニット(関数)を開発することをお勧めします。

2.オブジェクト指向プログラミング

構造化プログラミングの概念は、プログラムの明確さと信頼性を向上させ、保守を容易にしますが、大規模なプログラムを作成する際には依然として課題に直面しているため、OOPが誕生しました。手続き型プログラミングはアルゴリズムを強調し、OOPはデータを強調します

OOPプログラミングメソッドは最初にクラスを設計します。C ++では、クラスはこの新しいデータ形式を記述する仕様であり、オブジェクトはこの仕様に従って構築されたデータ構造です。

3. C ++およびジェネリックプログラミング

ジェネリックプログラミングは、C ++でサポートされているもう1つのプログラミングモードです。これはOOPと同じ目標を持っており、コードの再利用と一般的な概念の抽象化を容易にすることです。ただし、OOPはプログラミングデータを強調し、ジェネリックプログラミングは特定のデータ型からの独立性を強調します。ジェネリックプログラミングでは、言語を拡張して、(特定のタイプの関数ではなく)ジェネリック関数のみを記述し、それをさまざまな実際のタイプに使用できるようにする必要があります。C ++テンプレートは、このタスクを実行するためのメカニズムを提供します

4. C ++の起源

C言語と同様に、C ++はBjarneStroustrupが1980年代にこの言語を開発したベル研究所で生まれました。彼は、信頼できるリファレンスマニュアル「C ++プログラミング言語」および「C ++の設計と進化」の著者です。

  • ANSI / ISOは、C ++ 98と呼ばれる長年の努力の末、国際規格ISO / IEC 14882:1998を開発しました。この標準は、例外、実行時型情報(RTTI)、テンプレート、および標準テンプレートライブラリ(STL)を追加することにより、既存のC ++機能も拡張します
  • 2003年に、C ++標準(ISO / IEC 14882:2003)がリリースされ、このバージョンはC ++ 03と呼ばれていました。C ++ 03は言語機能を変更しないため、C ++ 98をC ++ 98 / C ++ 2003を意味するために使用します。
  • ISO規格委員会は、2001年8月にC ++ 11と呼ばれる新しい規格ISO / IEC 14882:2011を承認しました。それはいくつかの新機能を追加します。このバージョンはC ++ 0xとも呼ばれていました。

5.プログラミング関連

5.1プログラミング手順

源代码
编译器
目标代码
链接程序
可执行程序
启动代码
库代码

リンクとは、ターゲットコードを、使用する関数のターゲットコードおよびいくつかのスタートアップコードと組み合わせて、実行中のバージョンのプログラムを生成することです。

5.2ソースコードファイルの拡張子

C ++の実装 ソースコード拡張
UNIX C、cc、cxx、c
GNU C ++ C、cc、cxx、cpp、c ++
Microsoft Visual C ++ cpp、cxx、cc

5.3Unixのコンパイルとリンク

UNIXはCCを使用してプログラムをコンパイルしますが、1993年以降更新されていません。今日のUNIXコンピュータには、コンパイラ、専用コンパイラ、またはGNU g ++などのサードパーティコンパイラがない場合があります。そのコンパイルコマンドは次のとおりです。

CC my.C precious.C

コンパイル後、.oファイルが生成され、コンパイラはオブジェクトファイルをシステムリンカに自動的に渡して、実行可能ファイルa.outを生成します。

my.Cファイルのみを変更する場合は、次のコマンドも使用できます。

CC my.C precious.o

5.4Linuxのコンパイルとリンク

Linuxシステムで最も一般的に使用されているコンパイラはg ++で、これはFree SoftwareFoundationのGNUC ++コンパイラに由来します。Linuxのほとんどのバージョンにはこのコンパイラが含まれていますが、必ずしもインストールされているとは限りません。g ++コンパイラは、標準のUNIXコンパイラと非常によく似ています。例えば。

g++ my.cxx precious.cxx

これにより、a.outという名前の実行可能ファイルと、my.oおよびprecious.oという2つのオブジェクトコードファイルが生成されます。my.cxxが次に変更された場合。次のコマンドを使用してコンパイルできます。

g++ my.cxx precious.o

5.5Windowsコマンドラインコンパイラ

CygwinとMinGWの両方にコンパイラGNUC ++が含まれており、無料でダウンロードできます。使用するコンパイラはg ++と呼ばれます。g ++コンパイラを使用するには、最初にコマンドプロンプトウィンドウを開く必要があります。CygwinおよびMinGWプログラムを起動すると、コマンドプロンプトウィンドウが自動的に開きます。そのコンパイルコマンドは次のとおりです。

g++ great.cpp

コンパイルが成功した場合、実行可能ファイル名はa.exeです。

6.その他の基本的な紹介

6.1注意事項

//单行注释,C++风格注释

/*
多行注释
C风格注释
*/

6.2ヘッダーファイル名

次のヘッダーファイルを例として取り上げます。ヘッダーファイルの機能は、プログラムのコード行#include <iostream>をiostreamファイルのコンテンツに置き換えることです。

#include<iostream>

ヘッダーファイルの命名規則:

ヘッダーファイルタイプ 契約 インスタンス 説明
C ++の古いスタイル .hで終わる iostream.h C ++プログラムを使用できます
Cオールドスタイル .hで終わる math.h CおよびC ++プログラムを使用できます
C ++の新しいスタイル 拡張子なし iostream C ++プログラムを使用できます。namsspacestdを使用してください
変換されたC 接頭辞C、拡張子なし cmath C ++プログラムを使用でき、名前空間stdなどのC以外の機能を使用できます。

iostream.hの代わりにiostreamを使用する場合は、次の名前空間コンパイルディレクティブを使用して、iostreamの定義をプログラムで使用できるようにする必要があることに注意してください。

using namespace std

ヘッダーファイルでは、いくつかの特別な拡張子(.hppや.hxxなど)を使用することもできます。

6.3キーワード

ここに画像の説明を挿入


概要カタログ
前:なし
次:(2)データの処理


記事の参照:「C ++ Primer PlusSixthEdition」

おすすめ

転載: blog.csdn.net/QLeelq/article/details/112258203