C++ クラスとオブジェクトと例
クラスとは?
C++ クラスは、データとデータを操作するためのメソッドを 1 つに結合します。クラスはオブジェクトの形も決定します。クラスに含まれるデータとメソッドは、クラス メンバーと呼ばれます。クラスは、ユーザー定義のデータ型です。クラス メンバーにアクセスするには、クラスのインスタンスを使用します。オブジェクトの設計図としてクラスを見ることができます。
クラスは家のプロトタイプです。ドア、窓、床などの位置と大きさを示しています。これらの記述から、家を建てることができます。家がオブジェになります。プロトタイプから多くの家を作成することが可能です。また、クラスから多くのオブジェクトを作成することもできます。
上の図では、1 つの家のプロトタイプがあります。このプロトタイプから、特徴の異なる 2 つの家を作成しました。
このチュートリアルでは、次のことを学びます:
- クラスとは?
- クラスの例
- プライベートおよびパブリック キーワード
- オブジェクトの定義
- データ メンバーへのアクセス
- クラス メンバー関数
- コンストラクタとデストラクタ
クラス宣言
C+ では、class キーワードを使用してクラスを定義します。この後にクラス名が続く必要があります。その後、中括弧 { } の間にクラス本体が追加されます。
構文:
class class-name { // data // functions };
- class-name は、クラスに割り当てる名前です。
- データはクラスのデータで、通常は変数として宣言されます。
- 関数はクラス関数です。
プライベートおよびパブリック キーワード
この2つのキーワードに出くわしたに違いありません。それらはアクセス修飾子です。
- 非公開:
private キーワードを使用して関数またはクラスを定義すると、プライベートになります。これらはクラス内からのみアクセスできます。
- 公開:
一方、 public キーワードは、データ/関数を公開します。これらはクラス外からアクセスできます。
オブジェクトの定義
オブジェクトはクラスから作成されます。クラス オブジェクトは、変数の宣言と同様の方法で宣言されます。クラス名で始まり、その後にオブジェクト名が続く必要があります。クラス型のオブジェクト。
構文:
class-name object-name;
- クラス名は、オブジェクトが作成されるクラスの名前です。
- object-name は、新しいオブジェクトに割り当てられる名前です。
クラスからオブジェクトを作成するこのプロセスは、インスタンス化と呼ばれます。
データ メンバーへのアクセス
クラスのパブリック メンバーにアクセスするには、(.) ドット演算子を使用します。これらは public アクセス修飾子でマークされたメンバーです。
例 1:
#include <iostream> using namespace std; class Phone { public: double cost; int slots; }; int main() { Phone Y6; Phone Y7; Y6.cost = 100.0; Y6.slots = 2; Y7.cost = 200.0; Y7.slots = 2; cout << "Cost of Huawei Y6 : " << Y6.cost << endl; cout << "Cost of Huawei Y7 : " << Y7.cost << endl; cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl; cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl; return 0; }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明 :
<オール>プライベート クラスとは?
プライベートとしてマークされたクラス メンバーは、クラス内で定義された関数によってのみアクセスできます。クラス外で定義されたオブジェクトまたは関数は、そのようなメンバーに直接アクセスできません。プライベート クラス メンバーは、メンバー関数とフレンド関数によってのみアクセスされます。
保護クラスとは?
プロテクトとしてマークされたクラス メンバーは、プライベートとしてマークされたクラス メンバーよりも有利です。それらは、定義のクラス内の関数によってアクセスできます。さらに、派生クラスからアクセスできます。
例 2:
#include <iostream> using namespace std; class ClassA { public: void set_a(int val); int get_a(void); private: int a; }; int ClassA::get_a(void) { return a; } void ClassA::set_a(int val) { a = val; } int main() { ClassA a; a.set_a(20); cout << "Value of a is: " << a.get_a(); return 0; }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>例 3:
#include <iostream> using namespace std; class ParentClass { protected: int value; }; class ChildClass : public ParentClass { public: void setId(int x) { value = x; } void displayValue() { cout << "Value is: " << value << endl; } }; int main() { ChildClass c; c.setId(21); c.displayValue(); return 0; }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>クラス メンバー関数
関数は、データの操作に役立ちます。クラス メンバー関数は、次の 2 つの方法で定義できます。
- クラス定義内
- クラス定義の外
関数をクラス定義の外で定義する場合は、スコープ解決演算子 (::) を使用する必要があります。これには、クラス名と関数名を付ける必要があります。
例 2:
#include <iostream> #include <string> using namespace std; class Guru99 { public: string tutorial_name; int id; void printname(); void printid() { cout << "Tutorial id is: "<< id; } }; void Guru99::printname() { cout << "Tutorial name is: " << tutorial_name; } int main() { Guru99 guru99; guru99.tutorial_name = "C++"; guru99.id = 1001; guru99.printname(); cout << endl; guru99.printid(); return 0; }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>コンストラクタとデストラクタ
コンストラクタとは?
コンストラクトは、オブジェクトを初期化する特別な関数です。 C++ コンパイラは、オブジェクトの作成時にコンストラクターを呼び出します。コンストラクターは、クラス メンバーに値を割り当てるのに役立ちます。もちろん、これはメモリ空間が割り当てられた後です。
デストラクタとは?
一方、デストラクタは、クラス オブジェクトを破棄するのに役立ちます。
コンストラクター名は、クラス名と類似している必要があります。コンストラクターには戻り値の型がありません。
コンストラクターは、クラス本体の内部または外部で定義できます。クラス本体の外で定義する場合は、クラス名とスコープ解決演算子 (::) で定義する必要があります。
例 3:
#include <iostream> using namespace std; class ClassA { public: ClassA() { cout << "Class constructor called"<<endl; } ~ClassA() { cout << "Class destructor called"<<endl; } }; int main() { ClassA a; int p = 1; if (p) { ClassA b; } }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>まとめ:
- C++ はオブジェクト指向です。
- クラスは、C++ をオブジェクト指向にする主要な機能を形成します。
- C++ クラスは、データとデータを操作するためのメソッドを 1 つに結合します。
- クラスはオブジェクトの設計図です。
- クラスはオブジェクトの形を決定します。
- クラスに含まれるデータとメソッドは、クラス メンバーと呼ばれます。
- クラス メンバーにアクセスするには、クラスのインスタンスを使用する必要があります。
- クラスを作成するには、class キーワードを使用します。
- クラス メンバー関数は、クラスの内部または外部で定義できます。
C言語