C++ クラス & オブジェクト
C++ は C 言語の基礎の上にオブジェクト指向プログラミングを追加しました。C++ はオブジェクト指向プログラミングをサポートします。クラスは C++ の核心的な特性であり、通常はユーザー定義型と呼ばれます。
クラスはオブジェクトの形式を指定するために使用され、ユーザー定義のデータ型であり、データと関数をカプセル化した組み合わせです。クラス内のデータはメンバ変数と呼ばれ、関数はメンバ関数と呼ばれます。クラスはテンプレートとみなすことができ、同じ属性と動作を持つ複数のオブジェクトを作成するために使用できます。
C++ クラス定義
クラスを定義するにはキーワードが必要ですclassそしてクラスの名前を指定し、クラスの本体は一対の波括弧で囲まれ、その本体にはクラスのメンバ変数とメンバ関数が含まれます。
クラスを定義することは、本質的にデータ型の青写真(ブループリント)を定義することであり、クラスのオブジェクトが何を含み、そのオブジェクトに対してどのような操作を実行できるかを定義します。

以下の例ではキーワードを使用しますclassBoxデータ型を定義し、length、breadth、heightの3つのメンバー変数を含みます:
关键字publicクラスメンバーのアクセス属性を決定します。クラスオブジェクトのスコープ内では、パブリックメンバーはクラスの外部からアクセス可能です。クラスのメンバーを次のように指定することもできます。private 或 protected、これについては後で説明します。
C++ オブジェクトを定義する
クラスはオブジェクトの青写真を提供するため、基本的にオブジェクトはクラスに基づいて作成されます。クラスのオブジェクトの宣言は、基本型の変数を宣言するのと同じです。次の文は、クラス Box の2つのオブジェクトを宣言しています。
オブジェクト Box1 と Box2 は、それぞれ独自のデータメンバーを持っています。
データメンバーにアクセスする
クラスのオブジェクトのパブリックデータメンバーは、直接メンバーアクセス演算子を使用してアクセスできます。.来访问。

これらの概念をよりよく理解するために、次の例を試してみましょう。
实例
上記のコードがコンパイルおよび実行されると、次の結果が生成されます。
Box1 的体积:210 Box2 的体积:1560 Box3 的体积:1536
プライベートメンバーとプロテクトメンバーは、直接メンバーアクセス演算子 (.) を使用して直接アクセスできないことに注意してください。プライベートメンバーとプロテクトメンバーへのアクセス方法については、後のチュートリアルで学習します。
クラス & オブジェクトの詳細
これまでに、C++ のクラスとオブジェクトについて基本的な理解ができました。次のリストには、C++ のクラスとオブジェクトに関連するその他の概念もいくつか記載されていますので、対応するリンクをクリックして学習できます。
| 概念 | 描述 |
|---|---|
| 类成员函数 | クラスのメンバ関数とは、定義とプロトタイプをクラス定義の内部に記述する関数のことです。クラス定義内の他の変数と同じです。 |
| 类访问修饰符 | クラスメンバーは public、private、protected として定義できます。デフォルトでは private として定義されます。 |
| 构造函数 & 析构函数 | クラスのコンストラクタは特別な関数であり、新しいオブジェクトを作成するときに呼び出されます。クラスのデストラクタも特別な関数であり、作成したオブジェクトを削除するときに呼び出されます。 |
| C++ 拷贝构造函数 | コピーコンストラクタは特別なコンストラクタであり、オブジェクトを作成するときに、同じクラスの以前に作成されたオブジェクトを使用して、新しく作成されたオブジェクトを初期化します。 |
| C++ 友元函数 | 友元函数クラスの private および protected メンバーにアクセスできます。 |
| C++ 内联函数 | インライン関数を使用すると、コンパイラは関数を呼び出した場所で関数本体のコードを展開しようとします。 |
| C++ における this ポインタ | すべてのオブジェクトには特別なポインタがありますthis、それはオブジェクト自体を指します。 |
| C++ のクラスへのポインタ | クラスを指すポインタの方法は、構造体を指すポインタと同じです。実際には、クラスは関数を備えた構造体とみなすことができます。 |
| C++ クラスの静的メンバー | クラスのデータメンバーと関数メンバーはどちらも static として宣言できます。 |