c++复习(五)

第五章 数据的共享和共享数据的保护

变量和对象定义在不同的位置,其作用域,可见性,生存期都不同
静态数据成员,静态函数成员

友元函数:
对一些类外的函数,其他的类,给予授权,使他可以访问类的私有成员

常类型:
通过const关键字,限制对共享数据的修改

标识符的作用域和可见性
函数原型作用域:函数的形参表的范围
局部作用域(块):函数的形参,在块中声明的标识符,作用域自声明处起,作用于块中
类作用域:类体和成员函数体,在类作用域外访问类的成员时:静态成员:通过类名,或者该类的对象名,对象引用访问;非静态成员:通过类名,或者该类的对象名,对象引用,对象指针访问;
文件作用域:始于声明点,结束于文件尾
命名空间作用域:

可见性:
如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见,对于两个嵌套的作用域,如果在内层的作用域内与外层同名的标识符,则外层在内层不可见

对象的生存期
**静态生存期:**与程序运行期相同;在文件作用域中声明的对象,具有静态生存期;在函数内部声明静态生存期对象,要冠以关键字static;
**动态生存期:**始于程序执行到声明点时,结束于命名该标识符的作用域结束处;块作用域中声明的,没有用static修饰的对象;
静态局部变量:具有全局寿命,局部可见,只有第一次进入函数时被初始化;
局部变量:具有动态生存期,每次进入函数时,都被初始化;

类的静态数据成员
用关键字static声明
为该类的所有对象共享,静态数据成员具有静态生存期
必须在类外定义和初始化,用::来指明所属的类

类的友元
是c++提供的一种破坏数据封装和数据隐藏的机制;通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息;可以声明友元函数和友元类。
友元函数
是在类声明中由关键字friend修饰说明的非成员函数,在他的对象体中能够通过对象名访问private和protect成员,作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择,访问对象中的成员必须通过对象名。
友元关系是单向的;

共享数据的保护
常类型:常对象,必须进行初始化,不能被更新,const 类名 对象名;
常成员:用const进行修饰的类成员,常数据成员和常函数成员
常引用:被引用的对象不能被更新,const 类型说明符 &引用名;
常数组:数据元素不能被更新,类型说明符 const 数组名【大小】
常指针:指向常量的指针

多文件结构合成编译预处理
一个工程可以划分为多个源文件,例如:类声明文件(.h文件),类实现文件(.cpp文件),类的使用文件(main所在的.cpp文件),利用工程来组合各个文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章