C++ クラスのプライベート メンバーと保護されたメンバーの違いは何ですか

C Kurasunopuraibeto Menbato Bao Husaretamenbano Weiiha Hedesuka



C++ は、データと関数をクラスと呼ばれる単一のエンティティにカプセル化するメカニズムを提供するオブジェクト指向プログラミング (OOP) 言語です。クラスの重要な機能の 1 つは、そのメンバーのアクセス レベルを指定する機能です。オブジェクト指向プログラミングでは、 アクセス指定子 クラスのフィールドとメソッドの可視性とアクセシビリティを制御するために使用されます。 保護された 公共 、 と プライベート アクセス レベルは、C++ のアクセス レベルの 3 つの基本的なタイプです。

この記事では、主な 2 つの違いについて説明します。 アクセス指定子 s、 プライベート 保護された C++ クラスのメンバー。

プライベート アクセス指定子

プライベートメンバー は、キーワード ‘ を使用して宣言されます。 プライベート '。の プライベート アクセス指定子 クラスメンバーへのアクセスをクラス自体のみに制限します。クラス外のコードは、プライベート メンバーにアクセスしたり変更したりすることはできません。つまり、クラスで宣言されたメソッドのみがアクセスして操作できます。 プライベートメンバー 、派生クラスでさえアクセスできません プライベートメンバー .の一般的な使用法 プライベートメンバー クラスの正しい動作を保証することです。 プライベートメンバー クラスデータをカプセル化し、クラスのユーザーに抽象化のレベルを提供するために使用されます。







#include
使用して 名前空間 標準 ;

クラス プレーヤー {

プライベート :
文字列名 ;
整数 ;

公共 :
空所 getPlayer ( )
{
カウト << '名前を入力: ' ;
食べる >> 名前 ;
カウト << '年齢を入力してください: ' ;
食べる >> ;
}
空所 showPlayer ( )
{
カウト << '名前: ' << 名前 << エンドル ;
カウト << '年: ' << << エンドル ;
}
} ;

整数 主要 ( )
{
プレーヤーpl ;
pl。 getPlayer ( ) ;
pl。 showPlayer ( ) ;

戻る 0 ;
}

上記のコードでは、パブリック メンバー メソッドを使用します。 getPlayer() showPlayer() 2つにアクセスする プライベート メンバーの 名前 .の getPlayer() 関数はユーザーからの入力を取得し、それを介して画面に表示します showPlayer() 関数。



出力







保護されたアクセス指定子

保護されたメンバー クラスのクラスは、派生クラスとクラス自体のメンバー関数の両方からアクセスできます。 保護されたメンバー 実装の詳細を外部に公開することなく、派生クラスへのレベルのアクセスを提供するために使用されます。 保護されたメンバー は、キーワード ‘ を使用して宣言されます。 保護された ' そしてその コロン (:) キャラクター。 保護されたメンバー 整合性を損なうことなく、クラスを拡張および変更できるようにします。派生クラスは使用できます 保護されたメンバー 基本クラスの動作を改良またはカスタマイズします。

これはクラスの例です 保護されたメンバー :



#include
名前空間 std を使用します。

クラスプレーヤー {
プライベート:
文字列名;
年齢;

保護:
int ゴール;

公共:
void getPlayer ( )
{
カウト <> 名前;
カウト <> 年;
}
void showPlayer ( )
{
カウト << '名前: ' << 名前 << エンドル;
カウト << '年: ' << << エンドル;
}
} ;

クラス player1 : パブリック プレーヤー {

プライベート:
文字列の国;

公共:
void set_goals ( 整数 g )
{
目標 = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
カウト <> 国;
}
void showPlayer1 ( )
{
カウト << 「目標:」 << 目標 << エンドル;
showPlayer ( ) ;
カウト << '国: ' << << エンドル;
}
} ;

int メイン ( )
{
プレーヤー1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

戻る 0 ;
}

プレーヤー クラスは2人で構成されています プライベートメンバー 名前 、 一 保護された メンバー、 目標 、 と プライベート メンバーは内部で使用されます 公共 メンバー関数、 getPlayer() showPlayer() . 2つのクラスがあり、 プレーヤー プレイヤー1 、どちらも基本クラスです。一 プライベート メンバー、 、および 3 つ 公共 メンバーメソッドは プレイヤー1 クラス。 目標を設定します() 保護されたメンバーを変更するために使用されます 目標」 価値。 getPlayer1() を呼び出します getPlayer() のメンバ関数 プレーヤー クラスを追加しながら、国の入力を取得します。これと同様に、 showPlayer1() を呼び出します showPlayer() メンバー関数と出力 目標 値。

出力

C++ クラスのプライベート メンバーとプロテクト メンバーの違い

以下に、主な違いのいくつかを示します。 プライベート 保護された C++ クラスのメンバー。

1: 範囲と機能

アクセス指定子の使用を検討するときは、 範囲 機能性 プログラムの。あ プライベート アクセス指定子 最高レベルのセキュリティを提供し、変数やメソッドへの意図しないアクセスを回避します。一方、 保護されたアクセス指定子 は、基底クラスから派生クラスを継承することを計画するときに不可欠な、より広範なアクセシビリティと柔軟性を提供します。

2: アクセスのレベル

主な違いは プライベート 保護されたメンバー 彼らが提供するアクセスのレベルです。 保護された メンバーは、クラスの派生クラスとメンバー関数の両方からアクセスできますが、 プライベート メンバーは、クラスのメンバー関数によってのみ取得できます。

3: クラスのカプセル化

間のもう1つの重要な違い プライベート 保護された メンバーは、クラスのカプセル化を維持する役割です。データを分離し、クラスのユーザーにある程度の抽象化を提供するには、 プライベート メンバーが採用されています。 保護された メンバーは、継承構造を管理し、派生クラスによって基本クラス メンバーへのアクセスを提供するために使用されます。

最終的な考え

プライベート 保護されたメンバー C++ クラスの 2 つの重要なアクセス レベルです。の プライベート アクセス指定子は、すべての外部ユーザーがクラス メンバーにアクセスできないようにし、情報を保持するために使用されます。 プライベート クラス内。対照的に、 保護された アクセス指定子は、派生クラスのみがクラス メンバーにアクセスできるようにし、基本クラスの機能を提供するために使用し、基本クラスの動作を変更せずに変更できるようにします。クラス メンバーのアクセス レベルは、クラスのカプセル化を維持し、クラスのユーザーにアクセス レベルを提供する上で重要な役割を果たします。