2022年计算机二级C++复习资料:私有数据成员和友元.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在C++编程语言中,面向对象的一个核心概念是封装,其中私有数据成员和友元是两个关键元素。私有数据成员确保了类的内部数据只能通过特定的接口(即成员函数)进行访问,增强了数据的安全性和完整性。而友元则是一种打破封装规则的机制,允许非成员函数或类对私有数据的直接访问,以便实现特定的功能需求。 1. **私有数据成员的使用** 私有数据成员(private members)是类的内部数据,它们默认对外部代码隐藏,只有类内的成员函数才能直接访问。在示例中,`Date`类的`mo`, `da`, 和 `yr`就是私有数据成员。为了使外部代码能够读取和修改这些私有数据,我们定义了公有成员函数如`getyear()`和`setyear()`,它们被称为取值和赋值函数。取值函数(getter)如`getyear()`返回私有数据的值,而赋值函数(setter)如`setyear()`允许设置私有数据的值,但并不要求返回值和参数类型与私有数据完全匹配。 2. **构造函数和匿名对象** 构造函数用于初始化类的对象。在示例中,`CustomDate`类的构造函数接受三个参数,并且可以用来创建`Date`对象。在`main()`函数中,匿名`CustomDate`对象被创建并传递给`Date`对象的构造函数,这是一种常见且有效的用法。 3. **友元函数** 友元函数(friend function)不是类的成员,但具有访问类私有和保护成员的权限。例如,`display()`函数被声明为`Date`和`Time`类的友元,它可以访问这两个类的私有数据成员。这在重载运算符或需要跨越类边界访问数据时非常有用。在提供的代码中,`display()`函数连接了`Date`和`Time`对象,展示了友元如何在不同类之间建立桥梁。 4. **友元类** 虽然在这个例子中没有提及友元类,但友元类的概念也是类似的。一个类可以声明另一个类为它的友元,这样友元类的所有成员函数都可以访问被声明为友元的类的私有和保护成员。 总结,私有数据成员和友元在C++中是实现封装和信息隐藏的关键机制,它们帮助我们创建更安全、更灵活的代码结构。私有数据成员通过限制对数据的直接访问保证了数据的安全,而友元则提供了一种途径,允许特定的函数或类在需要时能访问私有数据,以满足复杂的编程需求。理解和恰当使用这些概念对于编写高效、可维护的C++程序至关重要。
- 粉丝: 6756
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助