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言語