friend 함수가 C++의 private 멤버에 액세스하는 방법에는 두 가지가 있습니다. 즉, 클래스 내에서 friend 함수를 선언하는 것입니다. 클래스의 모든 멤버 함수가 다른 클래스의 전용 멤버에 액세스할 수 있도록 클래스를 friend 클래스로 선언합니다.
C++ 친구 함수가 비공개 멤버에 액세스하는 방법
친구 함수는 클래스 외부에 정의되어 있지만 클래스의 비공개 멤버에 액세스할 수 있는 함수입니다. 개인 멤버에 대한 친구 함수의 액세스를 구현하는 방법에는 두 가지가 있습니다.
1. 친구 함수를 선언합니다.
클래스 내에서 친구 함수를 선언합니다. 구문은 다음과 같습니다.
class ClassName { public: // 类成员... // 声明友元函数 friend void friend_function(); };
이렇게 선언된 친구는 함수는 이 클래스의 비공개 멤버에 액세스할 수 있습니다.
2. 친구 클래스 선언
클래스를 친구 클래스로 선언하면 해당 클래스의 모든 멤버 함수는 다른 클래스의 비공개 멤버에 액세스할 수 있습니다. 구문은 다음과 같습니다.
class ClassName1 { public: // 类成员... // 声明友元类 friend class ClassName2; };
ClassName2
에 선언된 모든 멤버 함수는 ClassName1
의 전용 멤버에 액세스할 수 있습니다. ClassName2
中的成员函数都可以访问 ClassName1
的私有成员。
实战案例
考虑以下 C++ 代码:
class Person { private: int age; string name; public: // 友元函数 friend void print_person_info(const Person& person); // 访问私有成员的友元函数 void print_info() const { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } }; // 友元函数外部分类的定义 void print_person_info(const Person& person) { cout << "Name: " << person.name << endl; cout << "Age: " << person.age << endl; } int main() { Person person; person.name = "John"; person.age = 30; person.print_info(); print_person_info(person); return 0; }
在这个例子中,print_person_info
函数是一个友元函数,它可以访问 Person
类的私有成员。在 Person
类中,print_info
실용 사례
🎜🎜다음 C++ 코드를 고려하세요. 🎜Name: John Age: 30 Name: John Age: 30
print_person_info
함수는 Person의 개인 속성에 액세스할 수 있는 친구 함수입니다. 코드> 클래스 멤버. <code>Person
클래스에서 print_info
함수는 friend 함수 선언을 사용하여 비공개 멤버에도 액세스합니다. 🎜🎜위 코드를 실행하면 다음이 출력됩니다: 🎜rrreee위 내용은 C++ 친구 함수는 개인 멤버에 어떻게 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!