フレンド関数はプライベート メンバーにアクセスできますが、制限されています。現在のクラスのプライベート メンバーにのみアクセスでき (継承されたクラスにはアクセスできません)、それらを直接変更することはできません。実際の戦闘では、フレンド関数は、Student クラスのプライベート メンバー名にアクセスしたり、生徒の情報を出力したりするなど、参照またはポインターを介してプライベート メンバーにアクセスできます。
C フレンド機能の詳しい説明:非公開メンバーへのアクセス制限
フレンド機能とは?
フレンド関数は、どのクラスにも属さない関数ですが、クラス内で宣言されたすべてのメンバー (プライベート メンバーを含む) にアクセスできます。フレンド機能により、異なるクラス間の緊密な対話が可能になり、カプセル化されたクラスを柔軟に使用できるようになります。
フレンド関数がプライベート メンバーにアクセスする場合の制限
フレンド関数がプライベート メンバーにアクセスする場合、いくつかの制限があります:
実際的なケース
プライベート メンバー name
とパブリックメンバーgetAge()
。フレンド関数 printStudentInfo()
を作成して、プライベート メンバー name
にアクセスし、学生情報を出力します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:cpp;toolbar:false;'>class Student {
private:
string name;
public:
int getAge();
// 声明友元函数
friend void printStudentInfo(const Student& student);
};
void printStudentInfo(const Student& student) {
// 可以访问私有成员
cout << "Name: " << student.name << endl;
// 不能修改私有成员
// student.name = "John Doe"; // 错误
}
int main() {
Student student1;
student1.setName("Jane Doe");
printStudentInfo(student1);
return 0;
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
Name: Jane Doe
はプライベート メンバー name## にアクセスできます。 # ですが、変更することはできません。さらに、フレンド関数は参照またはポインタを介してのみクラス メンバーにアクセスでき、オブジェクト メンバーを直接使用できないことに注意してください。
以上がC++ フレンド関数の詳細な説明: プライベート メンバーにアクセスする場合のフレンド関数の制限は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。