Friend 함수는 비공개 멤버에 액세스할 수 있지만 제한되어 있습니다. 현재 클래스의 비공개 멤버에만 액세스할 수 있고(상속된 클래스에는 액세스할 수 없음) 직접 수정할 수 없습니다. 실제 전투에서 친구 기능은 Student 클래스의 개인 멤버 이름에 액세스하고 학생 정보를 인쇄하는 등 참조나 포인터를 통해 개인 멤버에 액세스할 수 있습니다.
C++ 친구 기능 상세 설명: 비공개 멤버 접근 제한
친구 기능이란 무엇인가요?
친구 함수는 어떤 클래스에도 속하지 않지만 클래스에 선언된 모든 멤버(비공개 멤버 포함)에 접근할 수 있는 함수입니다. 프렌드 함수를 사용하면 서로 다른 클래스 간의 긴밀한 상호 작용이 가능하고 캡슐화된 클래스를 유연하게 사용할 수 있습니다.
Friend 함수가 Private 멤버에 액세스하는 데 대한 제한 사항
friend 함수가 Private 멤버에 액세스할 때 몇 가지 제한 사항이 있습니다.
실용 사례
비공개 멤버 name
과 공개 멤버 getAge()
가 있는 Student
클래스가 있다고 가정해 보겠습니다. . 비공개 멤버 name
에 액세스하고 학생 정보를 인쇄하기 위해 친구 함수 printStudentInfo()
를 만듭니다. Student
类,它有一个私有成员 name
和一个公有成员 getAge()
。我们创建一个友元函数 printStudentInfo()
来访问私有成员 name
并打印学生信息。
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; }
输出:
Name: Jane Doe
在这个示例中,友元函数 printStudentInfo()
可以访问私有成员 name
rrreee
printStudentInfo()
는 비공개 멤버 name
에 액세스할 수 있지만 수정할 수는 없습니다. 또한 friend 함수는 참조나 포인터를 통해서만 클래스 멤버에 액세스할 수 있으며 개체 멤버를 직접 사용할 수 없다는 점에 유의해야 합니다. 🎜위 내용은 C++ 친구 함수에 대한 자세한 설명: 비공개 멤버에 액세스할 때 친구 함수의 제한 사항은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!