ホームページ  >  記事  >  バックエンド開発  >  C++ フレンド関数の詳細説明: フレンド関数とメンバー関数の違いは何ですか?

C++ フレンド関数の詳細説明: フレンド関数とメンバー関数の違いは何ですか?

王林
王林オリジナル
2024-04-29 08:27:011077ブラウズ

フレンド関数を使用すると、クラス定義でフレンド キーワードを使用して宣言することにより、外部関数がクラスのプライベート メンバーまたは保護されたメンバーにアクセスできるようになります。メンバー関数とは異なり、フレンド関数はクラスの外部で宣言され、クラスのプライベート メンバーと保護されたメンバーにアクセスできます。一方、メンバー関数はクラス内で宣言され、クラスのすべてのメンバーにアクセスできます。フレンド関数は通常の関数呼び出しとして使用されますが、メンバー関数はプライベートまたは保護されたメンバーへの外部アクセスが必要な場合に使用され、メンバー関数はクラス内で使用される場合に使用されます。

C++ 友元函数详解:友元函数和成员函数的区别?

#C フレンド関数の詳しい説明: フレンド関数とメンバー関数の違い

フレンド関数

フレンド関数は、外部関数がクラス内のプライベートおよび保護されたメンバーにアクセスできるようにする特別な関数です。これは、クラス定義の

friend キーワードを使用して宣言されます。

構文:

class MyClass {
  friend void myFriendFunction();
  ...
};

メンバー関数

メンバー関数は、クラスに属し、そのプライベート メンバーと保護されたメンバーにアクセスできる関数です。

文法:

class MyClass {
  void myMemberFunction();
  ...
};

フレンド関数とメンバー関数の違い

特徴フレンド関数メンバー関数アクセシビリティクラスのプライベートおよび保護されたメンバーにアクセスできますクラスのすべてのメンバーにアクセス可能宣言の場所クラス外クラス内スコープグローバル##メソッドの呼び出し##通常の関数と同じように呼び出します #Callクラス オブジェクトの使用実際的なケース
#内部クラス
プライベート

marks を持つ Student クラスを考えてみましょう。

メンバー:

class Student {
private:
  int marks;
  ...
};
フレンド関数 calculateAverage() を使用して生徒の平均成績を計算できます。これは marks

:

// 友元函数
friend double calculateAverage(Student& student);

// 计算学生的平均成绩
double calculateAverage(Student& student) {
  return student.marks / 3;
}
にアクセスできます。 メンバー関数を使用して平均成績を計算することもできますが、これは Student クラスでのみ使用できます:
// 类的成员函数
double getAverage() {
  return marks / 3;
}

結論

フレンド関数は、クラスのプライベートおよび保護されたメンバーを外部に公開せずに、外部関数がアクセスできるようにするメカニズムを提供します。メンバー関数はクラスのすべてのメンバーにアクセスできますが、クラス内でのみ使用できます。

以上がC++ フレンド関数の詳細説明: フレンド関数とメンバー関数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。