C++面向对象编程:友元函数与友元类
需积分: 49 62 浏览量
更新于2024-08-10
收藏 6.61MB PDF 举报
"C++程序设计,中国高等院校计算机基础教育课程体系规划教材,谭浩强编著"
在C++编程中,"程序中的display函数不放在-快速有效的嵌入式系统"这一主题涉及到类的封装和友元的概念。通常,类的私有数据成员是对外部不可见的,以确保数据的安全性和封装性。然而,在某些情况下,可能需要一个外部函数访问这些私有数据,这时可以使用友元函数。
在示例9.13中,`display`函数可以被设计为类外的普通函数,并在`Time`和`Date`两个类中声明为友元。这样,`display`函数可以在主函数中被调用,同时能够访问并输出`Time`和`Date`类对象的私有数据,如年、月、日、时、分、秒等信息。这种设计允许`display`函数跨越类的边界,而不会破坏封装原则,因为友元函数被类明确授权访问其私有和保护成员。
友元机制在C++中分为两种类型:友元函数和友元类。友元函数是一个不在类内定义,但被类声明为友元的函数,它可以直接访问类的私有和保护成员。在描述中提到的9.10.2节,还介绍了友元类的概念,即一个类可以声明另一个类为它的友元,使得友元类的所有成员函数都能访问原类的私有和保护成员。声明友元类的语法是 `friend 类名;`。
在C++的学习路径中,这通常是在理解面向对象编程(OOP)的基本概念之后,如类、对象、封装、继承和多态性后才会接触到的内容。书中的结构涵盖了从基本知识开始,包括数据类型、表达式、程序设计基础,逐渐深入到面向过程的编程,如函数、数组、指针和自定义数据类型。然后,进入基于对象的编程,学习类和对象、运算符重载等,最后探讨面向对象的特性,如继承、派生、多态性和虚函数,以及C++的输入输出流和其他实用工具。
C++的发展历程也值得一提,它由C语言发展而来,由Bjarne Stroustrup博士在C的基础上增加了面向对象的特性,因此C++既支持面向过程编程也支持面向对象编程,这使得它成为一种非常灵活的编程语言。C++对C语言的扩展主要体现在增加了面向对象的机制和对C语言功能的增强,比如模板、异常处理、命名空间等。
C++的友元机制是为了在保证封装性的前提下,提供必要的灵活性,让特定的函数或类能够访问其他类的私有成员。在设计复杂的软件系统时,合理利用友元可以提高代码的可读性和可维护性,但同时也需要注意避免过度使用,以免破坏封装性,增加代码的复杂性和潜在的错误风险。
107 浏览量
2012-08-28 上传
2022-09-23 上传
2023-03-16 上传
2023-08-29 上传
2023-05-30 上传
2023-06-12 上传
2023-05-25 上传
2023-06-01 上传
郑云山
- 粉丝: 20
- 资源: 2万+
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析