친구 기능 상속 하위 클래스가 친구 기능이 있는 클래스를 상속하는 경우: 하위 클래스는 친구 기능을 상속받을 수 없습니다. 상위 클래스의 Friend 함수는 하위 클래스의 비공개 멤버에 액세스할 수 있습니다. 하위 클래스의 Friend 함수는 상위 클래스의 전용 멤버에 액세스할 수 없습니다.
친구 함수가 클래스 상속에 미치는 영향
머리말
친구 함수는 클래스 범위 외부에서 클래스의 비공개 멤버에 액세스할 수 있는 특수 C++ 함수입니다. 클래스 상속에 관해서는 친구 함수의 동작을 이해하는 것이 중요합니다.
친구 함수 및 상속
하위 클래스가 친구 기능이 있는 클래스를 상속하는 경우 다음 규칙이 적용됩니다.
실용 사례
다음 샘플 코드를 고려하세요.
#include <iostream> class Base { friend void print(Base& b); // 父类友元函数 private: int x; }; class Derived : public Base { friend void access(Derived& d); // 子类友元函数 private: int y; }; void print(Base& b) { std::cout << b.x << std::endl; } // 父类友元函数访问私有成员 x void access(Derived& d) { std::cout << d.x << " " << d.y << std::endl; } // 子类友元函数访问私有成员 x 和 y int main() { Base b; b.x = 10; print(b); // 输出:10 Derived d; d.x = 20; d.y = 30; access(d); // 输出:20 30 print(d); // 输出:20 }
이 예에서는:
Base
에는 친구 함수 print()
가 있습니다. , x
비공개 멤버에 액세스할 수 있습니다. Base
有一个友元函数 print()
,它可以访问 x
私有成员。Derived
有一个友元函数 access()
,它可以访问父类私有成员 x
。Derived
的对象 d
可以被父类 Base
友元函数 print()
访问,但是无法访问父类的私有成员 x
Derived
에는 상위 클래스 전용 멤버 x
에 액세스할 수 있는 친구 함수 access()
가 있습니다. Derived
의 객체 d
는 상위 클래스 Base
친구 함수 print()
를 통해 액세스할 수 있습니다. , 그러나 상위 클래스의 비공개 멤버 x
에 액세스할 수 없습니다. 🎜🎜위 내용은 친구 함수는 클래스 상속에 어떤 영향을 미치나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!