数据共享与共享数据保护
友元:对一些类外的函数、其他的类授权,使之可以访问类的私有成员
通过const关键字,限制修改共享数据
多文件结构
标识符的作用域与可见性
作用域分类:
函数原型 函数原型中的参数
局部
类
范围include类体和成员函数体
在类作用域外访问类的成员
文件
不在前述各个作用域中出现的声明
作用域开始于声明点 结束于文件尾
可见性 从内层作用域向外层作用域“看”时能看见什么
对象生存期 从生存到结束
静态** : 与程序运行期相同
在文件作用域中声明的对象有这种生存期
在函数内部声明静态生存期对象 要冠以关键字static
动态 :开始于程序执行到声明点时
结束于命名该标志符的作用域结束处
类的友元
友元类:若一个类为另一个类的友元 则此类的所有成员都能访问对方类的私有成员
类的友元关系是单向的 声明B类是A类的友元!=A为B的友元
共享数据保护
常对象:必须进行初始化,不能被更新
const 类名 对象名
常成员:
用const 进行修饰
常引用:被引用对象不能被更新
const 类型说明符 &引用名
在友元函数中用常引用作参数,既能获得较高执行效率,又能保证实参安全性
多文件结构&编译预处理命令
C++程序的一般组织结构
外部变量
除在定义它的源文件中可用外,还能被其他文件使用
文件作用域中定义的变量 默认都是外部
外部函数
在所有类之外声明的函数 都是具有文件作用域的
这样的函数都可以在不同的编译单元中被调用 调用之前引用性声明即可