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

王林
リリース: 2024-04-29 08:27:01
オリジナル
1068 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

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