C++ でアクセス修飾子を制御する方法: メンバーの可視性について

C Deakusesu Xiu Shi Ziwo Zhi Yusuru Fang Fa Menbano Ke Shi Xingnitsuite



データ隠蔽は C++ の重要な機能の 1 つで、外部からクラスのデータへの不要なアクセスを防ぐために、クラス内のデータへのアクセスを制限することを指します。したがって、アクセス修飾子は、どのクラス メンバーがどの外部ソースにアクセス可能で、どのクラス メンバーがアクセスできないかを定義するために使用されます。

C++ のアクセス修飾子

アクセス修飾子は、クラスのデータのアクセシビリティと可視性を管理するために使用されます。データ メンバーに外部関数からアクセスできないように、データ メンバーにいくつかの制限を設定します。 C++ では、アクセス修飾子には 3 つのタイプがあります。

C++ のパブリック アクセス修飾子

public キーワードで宣言されたクラスのすべてのメンバーは、プログラム内のクラス外のすべての関数で使用できます。ドット演算子とも呼ばれる直接メンバー アクセス演算子 (.) をその特定のクラスのオブジェクトで使用して、これらのデータ メンバーにアクセスできます。







public アクセス修飾子はクラスを宣言するために使用され、そのデータ メンバーはプログラム内の他の関数によってアクセスされます。



#include

#include

#include

名前空間 std を使用する ;
クラス三角形
{
公共 :
浮く バツ そして ;
空所 入力 ( )
{
コート << 「三角形の辺 x を入力してください:-」 ;
食べる >> バツ ;
コート << 「三角形の辺 y を入力してください:-」 ;
食べる >> そして ;
コート << 「三角形の辺 Z を入力してください:-」 ;
食べる >> ;
}
空所 エリア ( )
{
浮く s = ( バツ + そして + ) / 2 ;
浮く エリア = 平方メートル ( s * ( s - バツ ) * ( s - そして ) * ( s - ) ) ;
コート << \n 三角形の面積 = << エリア ;
}
} ;
整数 主要 ( )
{
三角形 t1 ;
t1。 入力 ( ) ;
t1。 エリア ( ) ;
戻る 0 ;
}

Triangle はクラスとして定義され、そのパラメーターは public キーワードの下にあります。次に、パブリック修飾子のデータ メンバーにアクセスすることにより、このクラスの外部で三角形の面積が計算されます。







三角形の 3 辺はユーザーによって入力され、三角形の面積は、標準の式 (13.4164) を使用してクラス外の値にアクセスすることによって計算されます。

C++ のプライベート アクセス修飾子

キーワード private で宣言されたクラスのすべてのメンバーは、プログラム内のクラス外の関数では使用できません。これらのプライベート メンバーは、同じクラス内の直接メンバーのみが読み取ることができます。ただし、フレンド関数やクラスもデータにアクセスできます。



public と private の 2 つのクラスが宣言されており、プログラムの戻り値は三角形の面積になります。

#include

#include

#include

名前空間 std を使用する ;
クラス三角形
{

プライベート :
浮く バツ そして ;
公共 :
空所 入力 ( )

{

コート << 「三角形の辺 x を入力してください:-」 ;
食べる >> バツ ;
コート << 「三角形の辺 y を入力してください:-」 ;
食べる >> そして ;
コート << 「三角形の辺 Z を入力してください:-」 ;
食べる >> ;

}
空所 エリア ( )
{

浮く s = ( バツ + そして + ) / 2 ;
浮く エリア = 平方メートル ( s * ( s - バツ ) * ( s - そして ) * ( s - ) ) ;
コート << \n 三角形の面積 = << エリア ;

}

} ;

整数 主要 (
{
三角形 t1 ;
t1。 入力 ( ) ;
t1。 エリア ( ) ;
戻る 0 ;

}

main() では、オブジェクト t1 はプライベート クラス変数 float x、y、z に直接アクセスできないため、パブリック関数 input() を介して間接的にのみ操作できます。この関数は x、y、z の値を取得するためです。

三角形の面積は、パブリック クラスを使用して操作することでプライベート クラスにアクセスし、取得します。 x、y、z の値が public クラスで宣言されていない場合、計算のために main() でそれらの値にアクセスすることはできません。

C++ の保護されたアクセス修飾子

protected キーワードの下のメンバーと関数は保護されており、クラスおよび派生クラス内でのみアクセスできます。残りのクラスはデータにアクセスできません。彼らは高度に保護されています。

protected キーワードで保護されたデータは、クラス内および派生クラスであるクラスによってのみ読み取ることができます。この例は、保護されたアクセス修飾子の実際的なデモンストレーションです。

#include

#include

#include

名前空間 std を使用する ;
//親クラス
クラス三角形
{

保護された :
浮く バツ そして ;
} ;
//子クラス
クラスTriangleChild : パブリックトライアングル {
公共 :
空所 入力 ( )

{

コート << 「三角形の辺 x を入力してください:-」 ;
食べる >> バツ ;
コート << 「三角形の辺 y を入力してください:-」 ;
食べる >> そして ;
コート << 「三角形の辺 Z を入力してください:-」 ;
食べる >> ;

}
空所 エリア ( )
{
浮く s = ( バツ + そして + ) / 2 ;
浮く エリア = 平方メートル ( s * ( s - バツ ) * ( s - そして ) * ( s - ) ) ;
コート << \n 三角形の面積 = << エリア ;

}
} ;

整数 主要 ( )

{
三角子子 ;
子供。 入力 ( ) ;
子供。 エリア ( ) ;
戻る 0 ;

}

TriangleChild は、Triangle クラスから派生した継承クラスです。変数 x、y、z は、protected キーワードを使用して Triangle で宣言されます。これは、これらの変数は保護されていますが、Triangle がその親クラスであるため、TriangleChild からアクセスできることを意味します。変数の値は、Triangle クラスで宣言されているにもかかわらず、TriangleChild で割り当てられています。

子クラスを通じて変数にアクセスし、三角形の面積を計算します。

結論

データの隠蔽により、外部からクラスのデータへの不要なアクセスが防止されます。アクセス修飾子は、プログラム内のデータのアクセシビリティと可視性を管理するために使用されます。データを非表示にするために、プライベート、プロテクト、およびパブリックのアクセス修飾子が使用されます。 public キーワードの下のデータは、クラスの外部からの関数でも読み取ることができます。プライベートとして宣言されたデータはクラス内でのみ読み取ることができますが、保護されたデータは親クラスと子クラスからもアクセスできます。