没有合适的资源?快使用搜索试试~ 我知道了~
首页C++编程进阶指南:从基础到核心知识点详解
C++编程进阶指南:从基础到核心知识点详解
需积分: 20 12 下载量 41 浏览量
更新于2024-07-15
收藏 69KB DOCX 举报
本资源是一份针对计算机二级考试的C++复习资料,全面梳理了C++的基础知识和核心知识点。文档首先回顾了C++的发展历程,自1980年Bjarne Stroustrup博士创建C++以来,它逐渐成为一种融合面向对象特性于C语言之上的高级编程语言。1989年至1998年间,C++经历了标准化的过程,最终发布了国际标准。 C++与C的关系被明确为超集与子集的关系,虽然C++继承了C的所有功能,但两者并非完全等同,C++新增的关键字如`typename`、`dynamic_cast`等为程序设计提供了更多灵活性。C++还引入了布尔型变量`bool`,用于表示真和假两种逻辑状态,以及宽字符类型`wchar_t`,增强了处理多国字符的能力。 文档特别强调了C++和C在函数原型、内存管理、输入输出处理和异常处理等方面的区别,如C++中的`new`和`delete`操作符替换C的`malloc`和`free`,iostream类库替代stdio函数库,以及try-catch-throw语句代替setjmp()和longjmp()。 此外,C++中的关键字和变量使用技巧也被详细列出,包括`const`、`virtual`、`template`等,这些都是理解C++编程基础不可或缺的部分。这份讲义对于准备计算机二级C++考试的学生来说,是一个宝贵的参考资料,有助于系统地复习和巩固C++语言的知识体系。
资源详情
资源推荐
2.类的成员
一般在 类中,所有定义的变量和函数都是类的成员。如果是变量,我们就叫它数
据成员如果是函数,我们就叫它成员函数。
3.类成员的可见性
和 )!# 访问控制符决定了成员的可见性。由一个访问控制符设定的可访问
状态将一直持续到下一个访问控制符出现,或者类声明的结束。私有成员仅能被同一
个类中的成员函数访问,公有成员既可以被同一类中的成员函数访问,也可以被其他
已经实例化的类中函数访问。当然,这也有例外的情况,这是以后要讨论的友元函数。
类中默认的数据类型是 ,结构中的默认类型是 )!#。一般情况下,变量都
作为私有成员出现,函数都作为公有成员出现。
类中还有一种访问控制符 #,叫保护成员,以后再说明。
4.初始化
在声明一个类的对象时,可以用圆括号包含一个初始化表。
看下面一个例子:
-#!".'
#!+
/
?
'('; ';'1&&9 个私有数据成员
)!#?
+;;1
H+1
!"1&&成员函数
41
+??+'; ;
/
'('2'1
'2 1
'21
4
+??H+
/
&&'(
4
+??!"
/
'('7 '7'1
4
"
/
+')+9;;1&&声明一个类对象并初始化
#31
4
当一个类中没有 成员和 # 成员时,也没有虚函数,并且不是从其他
类中派生出来的,可以用/4来初始化。以后再讲解
5.内联函数
内联函数和普通函数的区别是:内联函数是在编译过程中展开的。通常内联函数必须
简短。定义类的内联函数有两种方法:一种和 语言一样,在定义函数时使用关键字
!。如:
!+??!"
/
'('7 '7'1
4
还有一种方法就是直接在类声明的内部定义函数体,而不是仅仅给出一个函数原型。
我们把上面的函数简化一下:
-#!".'
#!+
/
?
'('; ';'1
)!#?
+'; ;
/
'('2'1
'2 1
'21
4
H+1
!"
/
'('7 '7'1
4
41
"
/
+')+9;;1&&声明一个类对象并初始化
#31
4
这样,两个函数都默认为内联函数了。
二、构造函数
什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。上面
的 +函数就是构造函数。允许同名函数,也就允许在一个类中有多个构造函
数。如果一个都没有,编译器将为该类产生一个默认的构造函数,这个构造函数可能
会完成一些工作,也可能什么都不做。
绝对不能指定构造函数的类型,即使是 型都不可以。实际上构造函数默认为
型。
当一个类的对象进入作用域时,系统会为其数据成员分配足够的内存,但是系统不一
定将其初始化。和内部数据类型对象一样,外部对象的数据成员总是初始化为 。局
部对象不会被初始化。构造函数就是被用来进行初始化工作的。当自动类型的类对象
离开其作用域时,所站用的内存将释放回系统。
看上面的例子,构造函数 +函数接受三个整型擦黑素,并把他们赋值给立方体对
象的数据成员。
如果构造函数没有参数,那么声明对象时也不需要括号。
1.使用默认参数的构造函数
当在声明类对象时,如果没有指定参数,则使用默认参数来初始化对象。
-#!".'
#!+
/
?
'('; ';'1
)!#?
+'2; 29;2
/
'('2'1
'2 1
'21
4
H+1
!"
/
'('7 '7'1
4
41
"
/
+')+9;;1&&初始化
+$!)+1&&使用默认参数
#3#3
1
4
剩余52页未读,继续阅读
万能小博士
- 粉丝: 32
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功