友元机制与其他访问控制机制的区别与联系
导言在 C++ 面向对象编程中,访问控制机制是实现封装性的核心手段。友元机制和继承是两种主要的访问控制方式,它们既有联系又有显著区别。 一、本质区别 特性 友元机制 继承机制 关系性质 单向的 "授权" 关系 父子间的 "派生" 关系 访问目的 临时突破封装边界 实现代码复用与扩展 关系方向 非对称(A 是 B 的友元≠B 是 A 的友元) 可传递(间接继承) 生命周期 编译期静态确定 运行期动态体现(多态) 代码耦合度 低到中等(仅需声明) 高(子类依赖父类实现) 二、访问权限差异1. 友元机制的访问特点 可以直接访问所有私有成员(private)和保护成员(protected) 无需通过类的接口(public 成员)进行访问 访问权限是单向且不可传递的 示例: 12345678910111213141516171819class A {private: int x; friend class B; // B可以直接访问A的私有成员};class B...
C++ 友元机制深度解析:突破封装边界的艺术
一、友元机制概述C++ 面向对象编程中,封装通过public、private和protected确保数据安全。但特定场景需突破封装,友元(friend)机制由此诞生,它允许指定外部函数或类访问当前类私有、保护成员,同时维持其他实体的封装性,核心价值在于受控突破封装、支持高效数据访问及解决权限问题。 二、友元函数详解2.1 友元函数的定义与实现友元函数是类中声明为friend的非成员函数,可访问类所有成员。如Circle类中,calculateArea和isSameSize通过声明为友元,直接访问私有成员计算圆面积和比较大小。 1234567891011121314151617181920#include <iostream>#include <cmath>class Circle {private: double radius; const double PI = 3.1415926;public: Circle(double r) : radius(r) {} friend double...


Categories
Archives
- 2025年10月 7
- 2025年09月 19
- 2025年08月 8
- 2025年07月 8
- 2025年06月 8
- 2025年05月 8
- 2025年04月 8
- 2025年03月 8
- 2025年02月 8
- 2025年01月 8
- 2024年12月 9
- 2024年11月 7
- 2024年10月 10
- 2024年09月 10
- 2024年08月 10
- 2024年07月 8
- 2024年06月 8
- 2024年05月 9
- 2024年04月 9
- 2024年03月 9
- 2024年02月 7
- 2024年01月 9
- 2023年12月 8
- 2023年11月 9
- 2023年10月 8
- 2023年09月 6
- 2023年08月 7
- 2023年07月 9
- 2023年06月 8
- 2023年05月 11
- 2023年04月 8
- 2023年03月 8
- 2023年02月 8
- 2023年01月 8
- 2022年12月 9
- 2022年11月 14
- 2022年10月 10
- 2022年09月 7
- 2022年08月 6
- 2022年07月 8
- 2022年06月 10
- 2022年05月 7
- 2022年04月 7
- 2022年03月 4
- 2022年02月 5
- 2022年01月 5
Website Info
Article Count :
385
Runtime :
Total Word Count :
630.2k
Last Update :