Cplusplus-cpp-classes-objects
C ++クラスとオブジェクト
C プログラミングの主な目的は、Cプログラミング言語にオブジェクト指向を追加することです。クラスは、オブジェクト指向プログラミングをサポートし、多くの場合ユーザー定義型と呼ばれるC の中心的な機能です。
クラスはオブジェクトの形式を指定するために使用され、データ表現とそのデータを1つのきれいなパッケージに操作するためのメソッドを組み合わせます。 クラス内のデータと関数は、クラスのメンバーと呼ばれます。
C ++クラス定義
クラスを定義するときには、データ型の設計図を定義します。 これは実際にはデータを定義しませんが、クラス名が何を意味するのか、つまりクラスのオブジェクトが何を構成するのか、そしてそのようなオブジェクトに対して実行できる操作は定義します。
クラス定義は、キーワード class で始まり、その後にクラス名が続きます。クラス本体は、中括弧のペアで囲まれています。 クラス定義の後には、セミコロンまたは宣言のリストを続ける必要があります。 たとえば、次のようにキーワード class を使用してBoxデータ型を定義しました-
class Box {
public:
double length; //Length of a box
double breadth; //Breadth of a box
double height; //Height of a box
};
キーワード public は、それに続くクラスのメンバーのアクセス属性を決定します。 パブリックメンバーは、クラスオブジェクトの範囲内であればどこからでもクラスの外部からアクセスできます。 また、サブセクションで説明する private または protected としてクラスのメンバーを指定することもできます。
C ++オブジェクトを定義する
クラスはオブジェクトの設計図を提供するため、基本的にオブジェクトはクラスから作成されます。 基本型の変数を宣言するのとまったく同じ種類の宣言でクラスのオブジェクトを宣言します。 次のステートメントは、クラスBoxの2つのオブジェクトを宣言します-
Box Box1; //Declare Box1 of type Box
Box Box2; //Declare Box2 of type Box
オブジェクトBox1とBox2の両方には、データメンバーの独自のコピーがあります。
データメンバーへのアクセス
クラスのオブジェクトのパブリックデータメンバーには、直接メンバーアクセス演算子(。)を使用してアクセスできます。 物事を明確にするために次の例を試してみましょう-
#include <iostream>
using namespace std;
class Box {
public:
double length; //Length of a box
double breadth; //Breadth of a box
double height; //Height of a box
};
int main() {
Box Box1; //Declare Box1 of type Box
Box Box2; //Declare Box2 of type Box
double volume = 0.0; //Store the volume of a box here
//box 1 specification
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;
//box 2 specification
Box2.height = 10.0;
Box2.length = 12.0;
Box2.breadth = 13.0;
//volume of box 1
volume = Box1.height *Box1.length* Box1.breadth;
cout << "Volume of Box1 : " << volume <<endl;
//volume of box 2
volume = Box2.height *Box2.length* Box2.breadth;
cout << "Volume of Box2 : " << volume <<endl;
return 0;
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Volume of Box1 : 210
Volume of Box2 : 1560
プライベートメンバーおよび保護されたメンバーには、直接メンバーアクセス演算子(。)を使用して直接アクセスできないことに注意することが重要です。 プライベートおよび保護されたメンバーにアクセスする方法を学習します。
クラスとオブジェクトの詳細
これまでのところ、C クラスとオブジェクトに関する非常に基本的な考えを持っています。 C クラスとオブジェクトに関連するさらに興味深い概念があります。これらについては、以下にリストするさまざまなサブセクションで説明します-
Sr.No | Concept & Description |
---|---|
1 |
クラスのメンバー関数は、他の変数と同様に、クラス定義内にその定義またはプロトタイプを持つ関数です。 |
2 |
クラスメンバーは、public、private、またはprotectedとして定義できます。 デフォルトでは、メンバーはプライベートと見なされます。 |
3 |
クラスコンストラクターは、クラスの新しいオブジェクトが作成されたときに呼び出されるクラス内の特別な関数です。 デストラクタも、作成されたオブジェクトが削除されるときに呼び出される特別な関数です。 |
4 |
コピーコンストラクターは、以前に作成された同じクラスのオブジェクトで初期化することによりオブジェクトを作成するコンストラクターです。 |
5 |
|
6 |
インライン関数を使用すると、コンパイラーは、関数の呼び出しの代わりに関数の本体のコードを展開しようとします。 |
7 |
すべてのオブジェクトには、オブジェクト自体を指す特別なポインター this があります。 |
8 |
クラスへのポインターは、構造体へのポインターとまったく同じ方法で実行されます。 実際、クラスは実際には機能を備えた単なる構造体です。 |
9 |
クラスのデータメンバーと関数メンバーの両方を静的として宣言できます。 |