友元函数的继承性当子类继承具有友元函数的类时:子类无法继承友元函数。父类的友元函数可以访问子类的私有成员。子类的友元函数无法访问父类的私有成员。

友元函数对类的继承性影响
前言
友元函数是一种特殊的 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 私有成员。Derived 有一个友元函数 access(),它可以访问父类私有成员 x。Derived 的对象 d 可以被父类 Base 友元函数 print() 访问,但是无法访问父类的私有成员 x。以上就是友元函数对类的继承性有什么影响?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号