C++数据的共享与保护

                                                Chapter5    数据的共享和保护
5.1    标识符的作用域与可见性
5.1.1    作用域    
:一个标识符在程序正文中有效的区域;
1    函数原型作用域;
2    局部作用域    (具有局部作用域的变量称为局部变量);
3    类作用域;
4    命名空间作用域 (全局命名空间,自定义命名空间,匿名命名空间)
(具有命名空间作用域的变量称为全局变量);
5.1.2    可见性
:程序运行到某一点,能够引用到的标识符,就是该处可见的标识符;
作用域可见的一般规则:
    1    标识符要声明在前,引用在后;
    2    在同一作用域中不能声明同名的标识符;
    3    在没有相互包含关系的作用域中声明的同名标识符互不影响;
    4    如果在两个或多个具有包含关系的作用域中声明了同名标识符,则外层标识符在内层不可见;
5.2    对象的生存期
5.2.1    静态生存期
:对象的生存期与程序的运行期相同,即静态生存期;
静态对象:具有静态生存期的对象;
{
    命名空间作用域中声明的对象;
    局部作用域中用static声明的对象;
}
5.2.2    动态生存期
   : 诞生于声明点,结束于声明所在的块执行完毕之时;
    非静态对象都具有动态生存期;
5.3    类的静态成员
5.3.1    静态数据成员
:具有类作用域,静态生存期;
5.3.2    静态函数成员
静态成员函数可以通过类名或对象名来调用,非静态成员函数只有通过对象名来调用;
可访问该类的静态数据成员,静态函数成员;
访问非静态成员必须通过对象名;
5.4    类的友元
友元函数,友元类;
类的友元可访问protected,private成员;
友元关系不被继承,且为单方的;
5.5    共享数据的保护
5.5.1    常对象
:数据成员在对象的整个生存期内不能被更改;
5.5.2    用const修饰的类成员
1    常对象只能调用常成员函数,常成员函数无法修改数据成员(可修改mutable声明的数据成员);
2    常数据成员;
5.5.3    常引用
:常引用所引用的对象不能被更新;
5.6    多文件结构和编译预处理命令
5.6.1    C++程序组织结构
一个项目至少划分为三个文件:类声明文件(declaration.h),类实现文件(implementation.cpp),类的使用文件(main.cpp);
5.6.2    外部变量与外部函数
1    外部变量:可被非源文件使用的变量,命名空间中定义的变量默认为外部变量;
2    外部函数:所有类之外声明的函数,具有命名空间作用域;
3    将变量和函数的作用域限制在编译单元内:在匿名命名空间声明的变量和函数无法被为其他文件所用;
5.6.3    标准C++库
5.6.4    编译预处理
条件编译指令
#ifndef identifier   //避免重复声明
#defien identifier
#endif       
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值