"C++语言程序设计:第5讲 数据的共享与保护"
本讲知识要点:
5.1 标识符的作用域与可见性
在C++中,标识符的作用域是指标识符在程序正文中有效的区域。作用域可以分为五种:函数原型作用域、局部作用域、类作用域、文件作用域和命名空间作用域。在函数原型作用域中,参数的作用域始于“(”结束于”)”。局部作用域是指在块中声明的标识符,其作用域自声明处起,限于块中。类作用域是指类的成员具有类作用域,其范围包括类体和非内联成员函数的函数体。文件作用域是指不在前述各个作用域中出现的声明,就具有文件作用域,这样声明的标识符其作用域开始于声明点,结束于文件尾。
可见性是从对标识符的引用的角度来谈的概念。可见性表示从内层作用域向外层作用域“看”时能看见什么。如果标识在某处可见,则就可以在该处引用此标识符。块作用域、类作用域、命名空间作用域都可以影响可见性。
5.2 对象的生存期
对象的生存期是指对象从产生到结束的这段时间。在对象生存期内,对象将保持它的值,直到被更新为止。对象生存期可以分为静态生存期和动态生存期。静态生存期是指与程序的运行期相同的生存期。在文件作用域中声明的对象具有这种生存期。在函数内部声明静态生存期对象,要冠以关键字static。动态生存期是指块作用域中声明的,没有用static修饰的对象的生存期。开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。
5.3 类的静态成员
类的静态成员是指属于类的成员,而不是属于类的对象的成员。静态成员可以是变量或函数。静态成员可以在类的外部访问,通过类名或对象名、对象引用、对象指针访问。静态成员的生存期是静态生存期,从程序开始运行时产生,直到程序结束。
5.4 类的友元
类的友元是指可以访问类的私有成员的类或函数。类的友元可以是函数或类。类的友元可以访问类的私有成员,但不能访问类的保护成员。
5.5 共享数据的保护
共享数据的保护是指保护共享数据不被非法访问。共享数据可以是全局变量或静态变量。保护共享数据可以使用访问控制符号,如public、private、protected。
5.6 多文件结构和编译预处理命令
多文件结构是指将程序分为多个文件,各个文件独立编译,然后链接成一个可执行文件。编译预处理命令是指在编译之前对源代码进行预处理的命令。常用的编译预处理命令有#include、#define、#ifdef等。
在本讲中,我们学习了在C++中标识符的作用域与可见性、对象的生存期、类的静态成员、类的友元、共享数据的保护和多文件结构和编译预处理命令。这些概念是C++编程的基础,理解这些概念对于编写高质量的C++程序非常重要。