C++のフレンド関数の詳細解説:フレンド関数のアクセス権を制限するには?

WBOY
リリース: 2024-04-29 09:09:02
オリジナル
1045 人が閲覧しました

C のフレンド関数は、アクセス指定子または名前空間を通じてアクセス権を制限し、特定の関数または特定の名前空間内の関数のみがクラスのプライベート メンバーにアクセスできるようにすることができます。

C++ 友元函数详解:如何限制友元函数的访问权限?

#C フレンド機能の詳しい解説:フレンド機能のアクセス権を制限するには?

C では、フレンド関数は、外部関数がクラスのプライベート メンバーにアクセスできるようにする特別な関数です。これにより、あるクラスの外部のプライベート データや関数にアクセスできるようになり、特定の状況でより高い柔軟性が得られます。

フレンド関数のアクセス権を制限する

フレンド宣言を制限することで、フレンド関数のアクセス権を非公開メンバーに制限できます。これを行うには 2 つの方法があります:

方法 1: アクセス指定子を使用する

アクセス指定子 (public、protected、または private) の使用を制限できます。 フレンド関数のアクセス許可。構文は次のとおりです。

class MyClass {
  private:
    // 私有成员只能被友元函数访问
    friend void friendFunction();
};
ログイン後にコピー

方法 2: 名前空間を使用する

名前空間を使用して、フレンド関数の表示を制限することもできます。構文は次のとおりです。

namespace MyNamespace {
  class MyClass {
    private:
      // 私有成员由 MyNameSpace 命名空间内部所有友元函数访问
      friend class MyFriendClass;
  };
}
ログイン後にコピー

実用的なケース

次の 2 つのクラスがあるとします。

class Person {
  private:
    string name;
    int age;
};

class FriendClass {
  public:
    // 可以访问私有成员,因为它是一个友元类
    void printPersonDetails(Person person) {
      cout << person.name << ", " << person.age << endl;
    }
};
ログイン後にコピー

Here,

FriendClassperson クラスのフレンド クラスであるため、nameage などのプライベート メンバーにアクセスできます。

例を実行します

int main() {
  Person person{"John Doe", 30};
  FriendClass friendObj;  
  friendObj.printPersonDetails(person);
  return 0;
}
ログイン後にコピー

出力:

John Doe, 30
ログイン後にコピー

以上がC++のフレンド関数の詳細解説:フレンド関数のアクセス権を制限するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!