C++ 基本構文
C++ プログラムを考えるとき、それは、互いのメソッドを呼び出して通信するオブジェクトのコレクションとして定義できます。クラス、オブジェクト、メソッド、およびインスタント変数の意味を簡単に見てみましょう。
- <リ>
オブジェクト − オブジェクトには状態と動作があります。例:犬には、状態 (色、名前、品種) と行動 (振る、吠える、食べる) があります。オブジェクトはクラスのインスタンスです。
<リ>クラス − クラスは、そのタイプのオブジェクトがサポートする動作/状態を記述するテンプレート/ブループリントとして定義できます。
<リ>方法 − メソッドは基本的に動作です。クラスには多くのメソッドを含めることができます。ロジックが記述され、データが操作され、すべてのアクションが実行されるメソッドです。
<リ>インスタンス変数 - 各オブジェクトには、固有のインスタンス変数のセットがあります。オブジェクトの状態は、これらのインスタンス変数に割り当てられた値によって作成されます。
C++ プログラムの構造
Hello World という単語を出力する簡単なコードを見てみましょう。 .
ライブデモ#include <iostream> using namespace std; // main() is where program execution begins. int main() { cout << "Hello World"; // prints Hello World return 0; }
上記のプログラムのさまざまな部分を見てみましょう −
- <リ>
C++ 言語では、プログラムに必要または役立つ情報を含むいくつかのヘッダーが定義されています。このプログラムでは、ヘッダー
行 using namespace std; std 名前空間を使用するようにコンパイラに指示します。名前空間は、C++ に比較的最近追加されたものです。
<リ>次の行「// main() は、プログラムの実行が開始される場所です。 ' は、C++ で使用できる単一行のコメントです。 1 行のコメントは // で始まり、行末で終わります。
<リ>行 int main() プログラムの実行が開始されるメイン関数です。
<リ>次の行 cout <<"Hello World"; 画面に「Hello World」というメッセージが表示されます。
<リ>次の行 return 0; main( ) 関数を終了し、呼び出しプロセスに値 0 を返します。
C++ プログラムのコンパイルと実行
ファイルを保存し、プログラムをコンパイルして実行する方法を見てみましょう。以下の手順に従ってください −
- <リ>
テキスト エディターを開き、上記のコードを追加します。
<リ>ファイルを次のように保存します:hello.cpp
<リ>コマンド プロンプトを開き、ファイルを保存したディレクトリに移動します。
<リ>「g++ hello.cpp」と入力し、Enter キーを押してコードをコンパイルします。コードにエラーがない場合、コマンド プロンプトは次の行に移動し、.out 実行可能ファイルを生成します。
<リ>それでは、「a.out」と入力してプログラムを実行してください。
<リ>ウィンドウに「 Hello World 」と表示されます。
$ g++ hello.cpp $ ./a.out Hello World
g++ がパスにあり、hello.cpp ファイルを含むディレクトリで実行していることを確認してください。
makefile を使用して C/C++ プログラムをコンパイルできます。詳細については、「Makefile チュートリアル」を確認してください。
C++ のセミコロンとブロック
C++ では、セミコロンはステートメント ターミネータです。つまり、個々のステートメントはセミコロンで終了する必要があります。 1 つの論理エンティティーの終わりを示します。
たとえば、次の 3 つの異なるステートメントがあります −
x = y; y = y + 1; add(x, y);
ブロックは、左中括弧と右中括弧で囲まれた、論理的に接続された一連のステートメントです。たとえば-
{ cout << "Hello World"; // prints Hello World return 0; }
C++ は行末をターミネータとして認識しません。このため、ステートメントを行のどこに置くかは問題ではありません。たとえば-
x = y; y = y + 1; add(x, y);
と同じです
x = y; y = y + 1; add(x, y);
C++ 識別子
C++ 識別子は、変数、関数、クラス、モジュール、またはその他のユーザー定義項目を識別するために使用される名前です。識別子は、A から Z、a から z、またはアンダースコア (_) の文字で始まり、その後に 0 個以上の文字、アンダースコア、および数字 (0 から 9) が続きます。
C++ では、識別子内で @、$、% などの句読点を使用できません。 C++ は、大文字と小文字を区別するプログラミング言語です。したがって、マンパワー そしてマンパワー C++ では 2 つの異なる識別子です。
受け入れ可能な識別子の例をいくつか示します −
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
C++ キーワード
次のリストは、C++ の予約語を示しています。これらの予約語は、定数、変数、またはその他の識別子名として使用することはできません。
asm | その他 | 新しい | これ |
自動 | 列挙型 | オペレーター | 投げる |
ブール | 明示的 | 非公開 | 真 |
休憩 | 輸出 | 保護 | やってみる |
ケース | 外部 | 公開 | typedef |
キャッチ | 偽 | 登録 | タイプ ID |
文字 | フロート | reinterpret_cast | タイプ名 |
クラス | 用 | 戻る | ユニオン |
定数 | 友達 | 短い | 無署名 |
const_cast | 行く | 署名 | 使用 |
続ける | もし | サイズ | バーチャル |
デフォルト | インライン | 静的 | 無効 |
削除 | 整数 | static_cast | 不安定 |
する | 長い | 構造体 | wchar_t |
ダブル | 可変 | スイッチ | その間 |
dynamic_cast | 名前空間 | テンプレート |
トリグラフ
一部の文字には、トライグラフ シーケンスと呼ばれる別の表現があります。トライグラフは、1 つの文字を表す 3 文字のシーケンスであり、シーケンスは常に 2 つの疑問符で始まります。
トリグラフは、文字列リテラルや文字リテラル、コメント、プリプロセッサ ディレクティブなど、表示される場所ならどこでも展開されます。
以下は、最も頻繁に使用されるトライグラフ シーケンスです −
トリグラフ | 置換 |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
すべてのコンパイラがトライグラフをサポートしているわけではなく、混乱を招く性質があるため、それらの使用は推奨されていません。
C++ の空白
コメントを伴う可能性がある空白のみを含む行は空白行と呼ばれ、C++ コンパイラはそれを完全に無視します。
空白は、空白、タブ、改行文字、およびコメントを表すために C++ で使用される用語です。空白はステートメントの一部を別の部分から分離し、コンパイラが int などのステートメント内の 1 つの要素がどこで終わり、次の要素が始まるかを識別できるようにします。
ステートメント 1
int age;
上記のステートメントでは、コンパイラがそれらを区別できるように、int と age の間に少なくとも 1 つの空白文字 (通常はスペース) が必要です。
声明 2
fruit = apples + oranges; // Get the total fruit
上記のステートメント 2 では、果物と =の間、または =とりんごの間に空白文字は必要ありませんが、読みやすくするために空白文字を含めることは自由です。
C言語