C++の基本構文


C++ プログラムは、互いのメソッドを呼び出して対話するオブジェクトのコレクションとして定義できます。ここで、クラス、オブジェクト、メソッド、インスタント変数とは何かを簡単に見てみましょう。

  • オブジェクト - オブジェクトには状態と動作があります。例: 犬のステータス - 色、名前、品種、行動 - 震え、吠える、食べる。オブジェクトはクラスのインスタンスです。

  • クラス - クラスは、オブジェクトの動作/状態を記述するテンプレート/ブループリントとして定義できます。

  • メソッド - 基本的に、メソッドは動作を表します。クラスには複数のメソッドを含めることができます。メソッド内でロジックを記述し、データを操作し、すべてのアクションを実行できます。

  • インスタント変数 - すべてのオブジェクトには固有のインスタント変数があります。オブジェクトの状態は、これらのインスタント変数の値から作成されます。

C++ プログラム構造

単語 Hello World を出力できる簡単なコードを見てみましょう。

#include <iostream>
using namespace std;

// main() 是程序开始执行的地方

int main()
{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

次に、上記のプログラムについて説明しましょう:

  • C++ 言語は、プログラム内で必要な情報または有用な情報を含むいくつかのヘッダー ファイルを定義します。上記のプログラムにはヘッダー ファイル <iostream> が含まれています。

  • using namespace std; は、コンパイラーに std 名前空間を使用するように指示します。名前空間は、C++ における比較的新しい概念です。

  • 次の行 // main() はプログラムの実行を開始する場所です は 1 行のコメントです。単一行のコメントは // で始まり、行の終わりで終わります。

  • 次の行int main()がmain関数で、ここからプログラムの実行が始まります。

  • 次の行 cout << "Hello World"; は、画面に「Hello World」というメッセージを表示します。

  • 次の行 return 0; は main() 関数を終了し、呼び出し元のプロセスに値 0 を返します。

C++ プログラムのコンパイルと実行

次に、ソース コードをファイルに保存する方法と、それをコンパイルして実行する方法を見てみましょう。簡単な手順は次のとおりです:

  • テキスト エディターを開いて、上記のコードを追加します。

  • ファイルを hello.cpp として保存します。

  • コマンドプロンプトを開き、ファイルが保存されているディレクトリに移動します。

  • 「g++ hello.cpp」と入力し、Enter キーを押して、コードをコンパイルします。コードにエラーがない場合、コマンド プロンプトは次の行にジャンプし、a.out 実行可能ファイルを生成します。

  • 次に、「a.out」と入力してプログラムを実行します。

  • 画面に「Hello World」が表示されているのがわかります。

$ g++ hello.cpp
$ ./a.out
Hello World

パスに g++ コンパイラがあることを確認し、ソース ファイル hello.cpp を含むディレクトリでそれを実行していることを確認してください。

makefile を使用して C/C++ プログラムをコンパイルすることもできます。

C++ のセミコロンとブロック

C++ では、セミコロンはステートメントの終了文字です。つまり、各ステートメントはセミコロンで終わる必要があります。論理エンティティの終わりを示します。

たとえば、ここに 3 つの異なるステートメントがあります:

x = y;
y = y+1;
add(x, y);

ブロックは、中括弧で囲まれた論理的に接続されたステートメントのグループです。例:

{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

C++ は行末で終わらないため、1 行に複数のステートメントを入れることができます。例:

x = y;
y = y+1;
add(x, y);

x = y; y = y+1; add(x, y);

C++ 識別子

C++ 識別子と同等です。C++ 識別子は、変数、関数、クラス、モジュール、またはその他のユーザー定義項目を識別するために使用される名前です。識別子は、文字 A ~ Z、a ~ z、またはアンダースコア _ で始まり、その後に 0 個以上の文字、アンダースコア、および数字 (0 ~ 9) が続きます。

@、$、% などの句読点文字は C++ 識別子内では使用できません。 C++ は大文字と小文字を区別するプログラミング言語です。したがって、C++ では、Manpowermanpower は 2 つの異なる識別子です。

いくつかの有効な識別子を以下に示します。

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

C++ キーワード

次の表は、C++ の予約語をリストしています。これらの予約語は、定数名、変数名、またはその他の識別子名として使用することはできません。

virtualdefaultinlinestaticvoiddeleteintstatic_castvolatileのサイズdolongstructwchar_tdoublemutableswitchwhiledynamic_castnamespacetemplate
asmelsenewthis
autoenumoperatorthrow
bool 明示的非公開真実
休憩エクスポート保護試行
caseexternpublictypedef
catchfalseregistertypeid
charfloatreinterpret_casttypename
classforreturnunion
constfriendshortunsigned
const_castgo to 署名済み使用中
続行の場合

3文字グループ

3 文字グループは、別のグループを表すために使用される 3 文字のシーケンスです。文字 。3 文字のシーケンスとも呼ばれます。 3 文字のシーケンスは常に 2 つの疑問符で始まります。

3 文字のシーケンスはあまり一般的ではありませんが、C++ 標準では特定の文字を 3 文字のシーケンスとして指定できます。以前は、これはキーボードで使用できない文字を表現するために不可欠な方法でした。

3 文字のシーケンスは、文字列、文字シーケンス、コメント、前処理ディレクティブなど、どこにでも出現できます。

最も一般的に使用される 3 文字のシーケンスを以下に示します:

Trigram replacement??=#??/^??([??)]??!|??< { ?? ;}??-~

すべてのコンパイラはトライグラムをサポートしていません。混乱を避けるために、トライグラムを使用することはお勧めしません。

C++ のスペース

空白のみを含む行は空白行と呼ばれ、コメント化される場合があり、C++ コンパイラーはそれを完全に無視します。

C++ では、空白、タブ、改行、コメントを記述するためにスペースが使用されます。ホワイトスペースはステートメントの一部を区切るため、コンパイラはステートメント内の 1 つの要素 (int など) がどこで終了し、次の要素が始まるかを識別できます。したがって、次のステートメントでは:

int age;

ここでは、コンパイラが int と age を区別できるように、int と age の間に少なくとも 1 つのスペース文字 (通常は空白文字) が必要です。一方、次のステートメントでは:

fruit = apples + oranges;   // 获取水果的总数

果物と =、または = とリンゴの間のスペース文字は必須ではありませんが、読みやすくするために必要に応じていくつかのスペースを追加できます。