C++ の友元関数: 定義と使い方

C++の友だち関数は、クラスのプライベートメンバやプロテクトメンバにアクセスできる非メンバ関数のことを言います。以下にC++の友だち関数の定義と使用方法の手順を示します。

  1. クラスの宣言でフレンド関数を宣言する。
  2. クラス定義内でフレンド関数を定義する。
  3. 友元関数の実装でクラスのプライベートメンバとプロテクテッドメンバにアクセスする。

これは一例です。

// 声明类
class MyClass {
private:
int privateData;
public:
MyClass(int data);
// 声明友元函数
friend void friendFunc(MyClass obj);
};
// 定义类的构造函数
MyClass::MyClass(int data) {
privateData = data;
}
// 定义友元函数
void friendFunc(MyClass obj) {
// 访问类的私有成员
cout << "私有成员的值是: " << obj.privateData << endl;
}
int main() {
MyClass obj(10);
// 调用友元函数
friendFunc(obj);
return 0;
}

上の例では、friendFuncという名前のフレンド関数を宣言し、それをMyClassクラスのフレンドと宣言しています。フレンド関数のインプリメンテーションでは、MyClassクラスのプライベートメンバーprivateDataにアクセスできます。そしてメイン関数内では、MyClassオブジェクトobjを作成し、friendFunc関数を呼び出しています。

結果は次のようになります。

私有成员的值是: 10

友元関数はメンバ関数ではないので、定義時にスコープ演算子::を指定する必要はなくなります。友元関数内では、オブジェクトやポインタを経由することなく、そのクラスのプライベートメンバ、プロテクトメンバに直接アクセスできます。

bannerAds