中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第五章 数据的共享与保护

C++语言程序设计 第五章数据的共享与保护
第五章 数据的共享与保护 C++语言程序设计

C++语言程序设计 本拿主要内容 ●作用域与可见性 ·对象的生存期 ● 数据与函数 o 静态成员 ● 共享数据的保护 。友元 ● 编译预处理命令 ● 多文件结构和工程 ● 深度探索 日
C++语言程序设计 2 本章主要内容 作用域与可见性 对象的生存期 数据与函数 静态成员 共享数据的保护 友元 编译预处理命令 多文件结构和工程 深度探索

C++语言程序设计 标识符的作用域 作 用 标识符在程序正文中有效的区域 域 函数原型作用域 与 局部作用域 可 类作用域 见 命名空间作用域 性 米
C++语言程序设计 3 标识符的作用域 标识符在程序正文中有效的区域 –函数原型作用域 –局部作用域 –类作用域 –命名空间作用域 作用域与可见性

C+语言程序设计 数原型的作用域 作 用 函数原型中的参数,其作用域始于 域 ”(”,结束于")”。 与 ·例如,设有下列原型声明: 可 double area(double radius); 见 性 radius的作用域仅在于此, 不能用于程序正文其他地方, 因而可有可无
C++语言程序设计 4 函数原型的作用域 函数原型中的参数,其作用域始于 "(",结束于")"。 例如,设有下列原型声明: double area(double radius); radius 的作用域仅在于此, 不能用于程序正文其他地方, 因而可有可无。 作用域与可见性

C++语言程序设计 局部作用域 作 用 ● 函数的形参,在块中声明的标识符,其作 域 用域自声明处起,限于块中,例如: void fun(int a) 4 int b a; a的作用域 可 cin >b; if (b 0) int c; 性 c的作用域 b的作用域 块: 对大括号括起来的一段程序米
C++语言程序设计 5 局部作用域 函数的形参,在块中声明的标识符,其作 用域自声明处起,限于块中,例如: void fun(int a) { int b = a; cin >> b; if (b > 0) { int c; ...... } } 块:一对大括号括起来的一段程序 c的作用域 b的作用域 作用域与可见性 a的作用域

C++语言程序设计 类作用域 作 用 类作用域作用于特定的成员名。 域 ● 类x的成员m具有类作用域,对m的访问方式 与 如下: 可 如果在X的成员函数中没有声明同名的局部作用 见 域标识符,那么在该函数内可以访问成员m。 性 通过表达式x.m或者X::m访问。X::m的形式访 问类的静态成员。 通过表达式ptr->m,ptr为指向类X的一个对像 的指针
C++语言程序设计 6 类作用域 类作用域作用于特定的成员名。 类X的成员m具有类作用域,对m的访问方式 如下: –如果在X的成员函数中没有声明同名的局部作用 域标识符,那么在该函数内可以访问成员m。 –通过表达式x.m或者X::m访问。 X::m的形式访 问类的静态成员。 –通过表达式ptr->m,ptr为指向类X的一个对象 的指针 作用域与可见性

C+语言程序设计 命名空间 作 用 命名空间可以解决类名、函数名等的命名冲突 域 ●1 命名空间的声明 与 namespace命名空间名 可 各种声明(函数声明、类声明、…) 见 。例 性 namespace SomeNs class SomeClass {
C++语言程序设计 7 命名空间 命名空间可以解决类名、函数名等的命名冲突 命名空间的声明 namespace 命名空间名 { 各种声明(函数声明、类声明、……) } 例 namespace SomeNs { class SomeClass { ... }; } 作用域与可见性

C++语言程序设计 命名空间 作 用 ● 命名空间允许嵌套 域 namespace OuterNs 与 namespace InnerNs class SomeClass {..} 可 见 ● 性 特殊的命名空间 一全局命名空间:默认的命名空间 ·在显式声明的命名空间外声明的标识符都在全局命名空 间中 匿名命名空间:对每个源文件是唯一的
C++语言程序设计 8 命名空间 命名空间允许嵌套 namespace OuterNs { namespace InnerNs { class SomeClass { ... }; } } 特殊的命名空间 – 全局命名空间:默认的命名空间 在显式声明的命名空间外声明的标识符都在全局命名空 间中 – 匿名命名空间:对每个源文件是唯一的 作用域与可见性

C++语言程序设计 命名空间作用域 作 用 。一个命名空间确定了一个命名空间作用域 ● 引用其它命名空间作用域中的标识符 域 命名空间名:标识符名 与 例:声明一个SomeClass型的对象 SomeNs:SomeClass objl; 可 OuterNs:InnerNs:SomeClass obj2; 见 藏其它命名空间作用线的标识符录露于当前作用 ● 性 对指定标识符 ●using命名空间名:标识符名; 对所有标识符 ●using namespace命名空间名;
C++语言程序设计 命名空间作用域 一个命名空间确定了一个命名空间作用域 引用其它命名空间作用域中的标识符 – 命名空间名::标识符名 – 例:声明一个SomeClass型的对象 SomeNs::SomeClass obj1; OuterNs::InnerNs::SomeClass obj2; 将其它命名空间作用域的标识符暴露于当前作用 域 – 对指定标识符 using 命名空间名::标识符名; – 对所有标识符 using namespace 命名空间名; 9 作用域与可见性

C+语言程序设计 可见性 作 ● 可见性是从对标识符的引用的角度来谈 用 的概念 域 与 ·可见性表示从内层作用域向外层作用域 可 “看”时能看见什么。 见 ● 如果标识在某处可见,则就可以在该处 性 引用此标识符 名空间作用域 类作用域 块作用域
C++语言程序设计 10 可见性 可见性是从对标识符的引用的角度来谈 的概念 可见性表示从内层作用域向外层作用域 “看”时能看见什么。 如果标识在某处可见,则就可以在该处 引用此标识符。 块作用域 类作用域 命名空间作用域 作用域与可见性
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第四章 类与对象.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第六章 数组、指针与字符串.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第三章 函数.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第二章 C++简单程序设计.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)C++语言漫谈.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第一章 绪论(主讲:黄章进).pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(复习提纲,主讲:黄章进).pdf
- 《C++程序设计》课程教学资源(参考资料)C++ Programming ISO/IEC 14882 C++11(规范)Information technology — Programming languages — C++.pdf
- 《C++程序设计》课程教学资源(参考资料)C++ Programming ISO/IEC 14882 2003(规范文档)INTERNATIONAL STANDARD(Second edition).pdf
- 中国科学技术大学:单变量均匀静态细分格式的连续性分析和构造 Continuity Analysis and Construction of Uniform Stationary Univariate Subdivision Schemes.pdf
- 中国科学技术大学:NEW PROOF OF DIMENSION FORMULA OF SPLINE SPACES OVER T-MESHES VIA SMOOTHING COFACTORS.pdf
- 中国科学技术大学:JOURNAL OF UNIVERSITY OF SCIENCE AND TECHNOLOGY OF CHINA.pdf
- 中国科学技术大学:一类多参数的曲线细分格式.pdf
- 中国科学技术大学:Estimating Error Bounds and Subdivision Depths for Loop Subdivision Surfaces.pdf
- 中国科学技术大学:An Efficient Approach to Real-Time Sky Simulation.pdf
- 中国科学技术大学:Bounding the Distance between a Loop Subdivision Surface and Its Limit Mesh.pdf
- 中国科学技术大学:Bounding the Distance between a Loop Subdivision Surface and Its Limit Mesh.pdf
- 中国科学技术大学:A bound on the approximation of a Catmull-Clark subdivision surface by its limit mesh.pdf
- 中国科学技术大学:Full Camera Calibration from a Single View of Planar Scene.pdf
- 中国科学技术大学:Extended Doo-Sabin Surfaces.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第八章 多态性.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第七章 继承与派生.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第九章 群体类和群体数据的组织.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第十章 C++标准模板库.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第十一章 流类库与输入输出.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第十二章 异常处理.pdf
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论(主讲:郑莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第一章 计算机图形学概述 Computer Graphics.pdf
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第三章 OpenGL编程.pdf