C++编程:类与友元函数复习重点
版权申诉
98 浏览量
更新于2024-06-27
收藏 571KB DOCX 举报
"C++ 谭浩强 总复习试卷2.docx"
这份文档是对C++编程语言中一些核心概念的复习试题,主要涵盖了类、静态成员、友元、运算符重载等主题。以下是相关知识点的详细解释:
1. 静态数据成员:静态数据成员属于类,而不是类的任何实例。它们可以通过类名直接访问,无需创建对象,如`AB::bb`。
2. 友元函数:友元函数不是类的成员,但被授予访问类的私有和保护成员的权限。在类定义中通过`friend`关键字声明,如`friend void F();`
3. 访问静态成员:静态成员可以通过对象或类名来引用,例如`AB::bb`或`AB ob; ob.bb`。
4. 友元的作用:友元提供了一种打破封装的方式,使得某些特定函数可以访问通常不可见的成员。
5. 友元函数的特性:友元函数不是类的成员,它们独立于类,但可以访问类的私有和保护成员。
6. 非静态成员函数:在非静态成员函数中,可以直接访问类的非静态成员,因为它们有一个隐含的`this`指针指向当前对象。
7. 不能重载的运算符:在C++中,某些运算符不能被重载,包括`.`、`->`、`::`、`?`。
8. 运算符重载形式:重载可以为类的成员函数(成员运算符)或全局函数(友元函数)。
9. 后置运算符重载:后置增量或减量运算符(如`++`、`--`)需要一个额外的参数,通常是`int`类型,用来区分前置和后置操作。
10. 静态成员函数与非静态成员:静态成员函数没有`this`指针,不能直接访问非静态成员,需要通过对象实例来访问。
11. 访问非静态成员的方式:静态成员函数要访问非静态成员,必须先通过对象实例。
12. 构造函数:构造函数也不能直接引用类中说明的非静态成员,因为它们在对象实例化之前不存在。
13. 静态数据成员初始化:静态数据成员需要在类外部进行初始化,并使用作用域运算符`::`。
14. 友元关系传递:类B是类A的友元,但类B的成员函数不自动成为类A的友元。
15. 友元关系的特点:友元关系不是传递的,即Y是X的友元,Z是Y的友元,但Z不一定是X的友元。
选择题相关知识点:
1. 友元函数不是类的成员,不需要在类内定义,也不破坏封装性和隐藏性。
2. 友元函数可以访问类的所有成员,包括私有和保护成员。
3. 静态数据成员是类的共享成员,可以在类外定义和初始化,并可以用类名直接调用。
4. 静态成员函数不拥有`this`指针,因此不能操作非静态成员,除非通过对象实例。
5. 关键字`friend`用于声明友元,友元关系是非继承的。
这些知识点构成了C++中面向对象编程的基础,理解和掌握它们对于编写高效、安全的C++代码至关重要。
2022-11-22 上传
2021-10-05 上传
2021-12-06 上传
G11176593
- 粉丝: 6917
- 资源: 3万+
最新资源
- Cree的管子模型CGH系列全套
- 测试ASP.NET应用程序
- Login,查看java源码,java数组
- TellkiAgent_OSXMemory
- Android *应用程序的性能评估
- love:爱心树表白网页原始码,jquery女神表白动画树特效
- 模块5解决方案
- kaguya-reread
- TESTSYM,java项目源码分享网,java运动
- algoritmos-caso3
- 法新社2
- ByWebView:WebView全方面使用,JS交互,进度条,上传图片,错误页面,视频全屏播放,唤起原生App,获取网页源代码,被作为第三方浏览器打开,DeepLink,[腾讯x5使用示例]
- Hibernate,java项目实例源码,javaweb大作业
- Soundloud - Soundcloud To Mp3-crx插件
- 大型高温浓硫酸液下泵的设计与使用.rar
- interesting-js:一些有趣的js