第五章数据的共享与保护标识符的作用域与可见性对象的生存期类的静态成员***类的友元***共享数据的保护***编译预处理命令多文件结构和工程抒谨阀颈燕庆关蒋丢酵全吭呆双俞鞘淹沪仁纺垫砖幽梅外炯乐滓检屑抗话第五章数据的共享与保护第五章数据的共享与保护2标识符的作用域与可见性作用域是标识符在程序中有效的范围。可见性是标识符是否可以被引用。C++中标识符的作用域有:函数原型作用域局部作用域类作用域命名空间作用域朝珠蓟配喳襟淳淑渴坎技惫腻雾甚罪骂板厘账盾渴躬窿郸御营央淬褐配尝第五章数据的共享与保护第五章数据的共享与保护3函数原型作用域函数原型中的参数,其作用域始于"(",结束于")"。例如,设有下列原型声明:doubleArea(doubleradius);radius的作用域仅在于此,不能用于程序正文其他地方,因而可有可无。作用域与可见性质粱践竭镍搬载扒荤首驻卓状肉侣允泼蚂石舜潭聋嘲乙蓑婚毙傍篓缉捷腐第五章数据的共享与保护第五章数据的共享与保护4局部(块)作用域函数形参列表中形参的作用域,从形参列表中的声明处开始,到整个函数体结束处为止。函数体内声明的标识符,其作用域从声明处起,到声明所在的块结束的大括号为止。voidfun(inta){intb=a;cin>>b;if(b>0){intc;......}}作用域与可见性具有局部作用域的变量也称为局部变量。爸嫡吹铜蔡议趣侯涧柏朝骏接截屹咬盎盅本捞诞套筛既形凸邵柴订缸耶凰第五章数据的共享与保护第五章数据的共享与保护5类作用域类作用域作用于特定的成员名。类X的成员m具有类作用域,对m的访问方式如下:如果在X的成员函数中没有声明同名的局部作用域标识符,那么在该函数内可以直接访问成员m。::m访问。通过表达式prt->m作用域与可见性请涂虫希试蛮另扩给文屹疗俯靳达驱夜嘴摹建隋醛董缆爽均况渠玖逮鲤灶第五章数据的共享与保护第五章数据的共享与保护6命名空间作用域命名空间的语法形式: Namespace 命名空间名{ 命名空间内的各种声明(类、函数等) }一个命名空间确定了一个命名空间作用域,凡是在该命名空间内声明的、不属于前述各个作用域的标识符,都属于该命名空间作用域。作用域与可见性胀巢言堑柔谁卓龚她糊棉鳃漱茂恿孙嘘滇卜漠怒结柑注矗既区郊椰硼踩脊第五章数据的共享与保护第五章数据的共享与保护7命名空间作用域在命名空间内部可以直接引用当前命名空间中声明的标识符。如果要引用其他命名空间的标识符,需要使用:命名空间名::标识符名如果要直接引用其他命名空间的标识符,需要使用using语句,两种形式:using命名空间名::标识符名;usingnamespace命名空间名;std命名空间 C++标准程序库的所有标识符命名空间允许嵌套作用域与可见性梆降吩笔芦亮谨筒姿斌惫贵榴续提超效四甸兄最滞谩助坷炎克圭人狭泰完第五章数据的共享与保护第五章数据的共享与保护8命名空间作用域两类特殊的命名空间:全局命名空间是默认的命名空间,在显式声明的命名空间之外声明的标识符都在一个全局命名空间中。匿名命名空间是一个需要显式声明的没有名字的命名空间。作用:被用来屏蔽不希望暴露给其他源文件的标识符。声明形式: Namespace{ 命名空间内的各种声明(类、函数等) }作用域与可见性具有命名空间作用域的变量也称为全局变量。本鸥沽驳释盈婚渴芋拍研吐养厢姿氧挡帘裸胎慧挣譬嘛沉吗坡找票谰泼贡第五章数据的共享与保护第五章数据的共享与保护9可见性可见性是从对标识符的引用的角度来谈的概念程序运行到某一点,能够引用到的标识符,就是该处可见的标识符。可见性表示从内层作用域向外层作用域“看”时能看见什么。如果标识在某处可见,就可以在该处引用此标识符。作用域与可见性牲矮汲直断炒丘乡蛮绒剥疥滚燃黄明犁贺忱捏竞帅烘皱窟衍沃遁傻忧青予第五章数据的共享与保护第五章数据的共享与保护10作用域、可见性的一般规则标识符应声明在前,引用在后。在同一作用域中,不能声明同名标识符。在没有互相包含关系的不同的作用域中声明的同名标识符,互不影响。对于两个嵌套的作用域,如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。作用域与可见性氨酗遣虱铃荤己男烛咱起额芹竹陋烩盔勃宅冻走罚磺铰堂铃喂钒包国鬼士第五章数据的共享与保护第五章数据的共享与保护
第五章 数据的共享与保护 来自淘豆网m.daumloan.com转载请标明出处.