ホームページ > バックエンド開発 > C++ > C++ プログラムはクラスのプライベート メンバーにアクセスします

C++ プログラムはクラスのプライベート メンバーにアクセスします

王林
リリース: 2023-09-08 08:17:05
転載
1263 人が閲覧しました

C++ プログラムはクラスのプライベート メンバーにアクセスします

クラスのプライベート メンバーには、そのクラスのメンバーのみがアクセスできます。これは、オブジェクト指向のカプセル化原則を維持するために行われ、データとそれに関連する関数が単一のユニットに保持され、クラスのメンバーからのみアクセスできるようにします。 C には、クラスのメンバーの可視性を指定するための 3 つの異なるアクセス制御があります。これら 3 つのアクセス制御文字は、-

です。
  • パブリック - クラスのメンバーにパブリック可視性がある場合、これらのメンバーには他のクラスからアクセスできます。

  • プライベート - プライベート可視性を持つクラス メンバーには、クラス内からのみアクセスできます。

  • 保護された - 保護されたクラス メンバーは、クラス内またはそのサブクラスからのみアクセスできます。

この記事では、クラスのプライベート メンバーへのアクセスのみに焦点を当てます。

ゲッター メソッドとセッター メソッドを使用してデータ メンバーにアクセスする

ゲッター関数とセッター関数は、クラスのプライベート メンバーにアクセスして変更するために使用されます。名前が示すように、getter 関数はデータ メンバーを返しますが、setter 関数は "set" またはデータ メンバーを変更するために使用されます。この概念をさらに理解するために 2 つの例を使用しますが、その前に、基本的な構文を以下に示します。

###文法###

ゲッター/アクセサー関数 −

リーリー

セッター/ミューテーター関数−

リーリー

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

別の関数内からメンバー関数にアクセスする

プライベート メンバー関数にアクセスする場合も状況は同じです。データ メンバーにアクセスするのと同じ方法で、クラス メンバー メソッド内からアクセスする必要があります。 「

this

」ポインターを使用すると、名前の競合を避けることができます。

###文法### リーリー

プライベートメンバー関数を呼び出す関数はパブリックとして宣言する必要があります。パブリック関数は、このクラスのオブジェクトから呼び出された場合にのみ実行されます。 Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

フレンドクラスを使用する

C では、フレンド クラスは、他のクラスからは見えない他のクラスのプライベート メンバーと保護されたメンバーにアクセスできるクラスです。クラスを別のクラスのフレンドとして宣言するには、キーワード「

friend

」を使用します。どのように機能するかを見てみましょう。

###文法### リーリー

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

フレンド機能を利用する C では、フレンド関数はフレンド クラスに似ています。ここで、クラスのメンバーではない特定の関数を「フレンド」として宣言すると、クラスのプライベート メンバーにアクセスできるようになります。関数を「

Friend

」として定義する方法の構文を見てみましょう。

###文法### リーリー

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー ###結論は###

クラスのプライベート データ メンバーにアクセスする場合は、アクセサー/ゲッター関数とモディファイア/セッター関数を使用するのが最善です。これは、クラスのデータ メンバーにアクセスする最も安全な方法です。常に覚えておくべきことの 1 つは、プライベート メンバーにアクセスする関数はパブリックに宣言する必要があるということです。フレンド関数は、オブジェクト指向のカプセル化のプロパティを常に保持するとは限らないため、他のオブジェクト指向言語では使用できません。フレンド関係は非対称です。クラス A がクラス B をフレンドとして宣言した場合、クラス B は A のすべてのメンバーにアクセスできますが、A は B のすべてのプライベート メンバーにアクセスできません。

以上がC++ プログラムはクラスのプライベート メンバーにアクセスしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート