- 2
- 0
- 约2.53千字
- 约 24页
- 2019-11-28 发布于上海
- 举报
C++语言程序设计
普通高等教育“十一五”国家级规划教材
国家精品课教材
尹云飞
博士 硕导
yinyunfei@cqu.edu.cn
2
第5章 数据的共享与保护
作用域与可见性
对象的生存期
数据与函数
静态成员
共享数据的保护
友元
编译预处理命令
多文件结构和工程
深度探索
3
作用域
函数原型作用域:指在在函数原型声明时形式参数的作用范围
局部作用域:从声明处开始到声明所在块结束的大括号位置
类作用域:
标识符的作用域与可见性
类作用域有3种:
如果在类的成员函数中没有声明同名的形参,则可以访问到类的局部变量
通过类名.成员变量或类名::成员变量可以访问成员变量,其中类名::成员变量只用于访问静态成员
通过ptr-成员变量也可以访问类的成员变量
4
作用域
命名空间作用域:在一个命名空间内有效,通常称这些变量为全局变量
语法:namespace 空间名{….}
using 空间名::标识符;表示在当前作用域中可以直接引用该标识符
标识符的作用域与可见性
5
作用域
Using namespace 空间名;表示在当前作用域中可以直接引用该命名空间的任意标识符
例5-1,p149
标识符的作用域与可见性
6
可见性
可见性,即可引用性。程序运行到某一点能够引用到的标识符,就是该处可见的标识符
图5-1,p150
标识符的作用域与可见性
可见性规则:
标识符应声明在先,引用在后。
如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。
对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。
7
静态生存期
如果对象的生存期与程序的运行期相同,则称它具有静态生存期
命名空间中的对象均具有静态生存期
局部变量也可,例如 static int x = 10;
对象的生存期
8
动态生存期
动态生存期是在局部作用域中声明的对象
局部生存期对象诞生于声明点,结束于声明所在的块执行完毕
例5-2,p151
对象的生存期
9
静态数据成员
类的静态数据成员是描述类的所有对象共同特征的一个数据项,对于任何对象实例,它的属性值是相同的
采用static关键字来声明静态成员
静态数据成员具有静态生存期,例5-4
类的静态成员
10
静态函数成员
静态成员函数是使用static关键字生命的函数成员
静态成员函数可以直接访问该类的静态数据和函数成员。而访问非静态成员,必须通过对象名。例如p157,例5-5,p157
类的静态成员
11
友元关系
友元关系提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制
在一个类中,通过friend将其他函数或类声明为友元
类的友元
12
友元类
通过friend修饰的类
若A类为B类的友元类则A类的所有成员函数都是B类的友元函数,都可以访问B类的私有和保护成员
例如p162
类的友元
13
友元函数
友元函数是在类中用关键字friend修饰的非成员函数
友元函数可以通过对象名访问类的私有和保护成员
例5-6,p160
类的友元
关于友元需要注意:
友元关系是不能传递的:B是A的友元,A是C的友元 不等于B是C的友元
友元关系是单向的:B是A的友元,不表示A是B的友元
友元关系是不能被继承的
14
常对象
常对象是指其数据成员值在对象的整个生存期间不能被改变
语法:const 类型说明符 对象名;
常对象必须进行初始化,而且不能被更新
共享数据的保护
15
用const修饰的类成员
常成员函数:用const修饰的函数
语法:类型说明符 函数名(参数表) const
例5-7,p165
共享数据的保护
常成员函数使用注意:
在函数定义部分也要带const
常对象只能调用常成员函数,非常对象既可以调用常成员函数也可调用普通成员函数
常成员函数在调用过程中其调用对象都被视为常对象,不管其本身原来是不是
Const可以用来对重载函数的区分,即void print();和void print() const;是不同的函数
16
用const修饰的类成员
常数据成员:用const修饰的数据成员
例5-8
共享数据的保护
17
常引用
常引用:用const修饰的引用
语法:const 类型说明符 引用名;
例5-9,p167
共享数据的保护
18
C++程序的一般组织结构
一个项目至少包括3个文件:类定义文件(.h)、类实现文件(.cpp)和类使用文件(.cpp)
例5-10,p168
C++多文件组织结构图,图5-8,p169
多文件结构和编译预处理命令
19
外部变量与外部函数
外部变量:如果一个变量除了在定义它的源文件中可以使用外,还能在其他文件中使用
命名空间定义的变量都是外部变量
外部变量引用通过ext
您可能关注的文档
- 工学过程式数据库对象.pptx
- 数字机顶盒技术.pptx
- 建设工程定额.pptx
- 微机期未试卷评讲.pptx
- 度奖励私立大学校院校务发展计画.pptx
- 房屋建筑学第五章2.pptx
- 工学计算机中的数制和编码.pptx
- 市场化改革与电力工业的可持续发展刘宝华.pptx
- 差错控制编码纠错码简介.pptx
- 复杂先天性心脏病超声诊断.pptx
- 2026浙大宁波理工学院教师招聘备考试题及参考答案详解1套.docx
- 2026浙大宁波理工学院教师招聘备考题库及参考答案详解1套.docx
- 2026浙大二院临床医学博士后招聘备考题库附答案详解.docx
- 2026浙大二院临床医学博士后招聘备考题库带答案详解.docx
- 江西赣州市龙南市阳明中学2025-2026学年高一下学期开学生物试题(含答案).pdf
- 2026浙大宁波理工学院教师招聘备考试题含答案详解.docx
- 2026浙大宁波理工学院教师招聘备考试题及答案详解1套.docx
- 江西赣州市上犹县江西省上犹中学2025-2026学年高二下学期开学生物试题(含答案).pdf
- 2026浙大二院临床医学博士后招聘备考题库及完整答案详解1套.docx
- 2026浙大二院临床医学博士后招聘备考题库及答案详解1套.docx
最近下载
- 小学数学巧算24点专项练习题(每日一练,共9份).docx VIP
- 小学数学巧算24点专项练习题(每日一练,共19份).docx VIP
- 浙江省温州市2025年数学中考一模试卷.pptx VIP
- 9宫格数独练习题(初级简单,每日一练,共19份).pdf VIP
- 9宫格数独练习题(初级简单,每日一练,共31份).pdf VIP
- 2023年浙江省温州市中考数学真题.docx VIP
- (81格)舒尔特方格-儿童注意力训练(每日一练,共24份).docx VIP
- (81格)舒尔特方格-儿童注意力训练(每日一练,共19份).docx VIP
- (25格)舒尔特方格练习题儿童注意力训练(每日一练,共9份).docx VIP
- (25格)舒尔特方格练习题儿童注意力训练(每日一练,共16份).docx VIP
原创力文档

文档评论(0)