- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C/C++语言程序设计辅导资料十
主 题:第十七章 C++程序的结构(一)
学习时间:201年月日-月日
内 容:
我们这周主要学习第十七章C++程序的结构(一)的相关内容,希望通过下面的内容能使同学们加深对本章相关知识点的理解。知识脉络:
1、作用域与可见性
2、对象的生存期
3、数据与函数
4、共享数据的保护
5、友元
6、编译预处理命令
7、多文件结构和工程重点与难点:
1、重点:作用域与可见性,对象的生存期,数据与函数,共享数据的保护;
2、难点:友元函数与友元类,编译预处理命令,多文件结构和工程。
一、C++中的作用域
1、局部作用域
标识符出现在块内时,该标识符的作用域是从声明点开始,到块结束处为止。
2、在if语句、switch语句条件表达式中声明标识符,以及在for语句的第一个表达式中声明的标识符,其作用域在该语句内。例如:
void fun()
{ int sum=0;
for(int i=0;i100;i++ ) // i作用域开始点
{ int number;
cinnumber;
sum+=number;
}
coutnumber; //error
}
3、函数原型作用域
函数原型声明中所声明的参数属于该作用域。函数原型作用域仅在参数表括号内。例如:
void Area(doublewidth,double length);
length=50; //error
4、文件作用域
①文件作用域是指在程序文件中函数定义和类定义部分之外说明的变量,其作用域是从说明点开始到文件结束处。
②在文件域中定义的变量是全局变量,若不是静态全局变量,则可被整个程序所引用。
③若头文件被包含到一个源文件中,则在头文件的文件作用域中进行的声明将扩展到源文件中。
5、类作用域
①类的作用域是指类的声明中一对花括号所形成的作用范围。一个类的成员可以引用类的其他成员。
②在类作用域之外,对类成员的访问一般是不允许的,或者要受特殊的规则的限制(友元函数)。
例:
#includeiostream.h
int i; //文件作用域
int main()
{ i=5;
{ int i; //块作用域
i=7;
couti=iendl; //输出7
}
couti=i; //输出5
return 0;
}
二、可见性
1、作用域
①作用域是指标识符有效范围,而可见性是分析在某一位置标识符有效性。
②任何标识符的可见性范围不超过其作用域;反之,作用域则包含可见范围,但不等于可见范围。
③当两个同名标识符的作用域发生嵌套时,须分析可见性。
④在内层作用域中,外层作用域所声明的标识符是不可见的。
⑤如果被隐藏的是全局变量,则在内层作用域可用域操作符::来引用该全局变量。
2、例:
int a=0;
void fun()
{ float a=3.0;
::a=10; //全局变量
a=3.0; //局部变量
}
三、对象的生存期
1、概念
对象从产生到结束的这段时间就是它的生存期。在对象生存期内,对象将保持它的值,直到被更新为止。
2、静态生存期
①这种生存期与程序的运行期相同。
②在文件作用域中声明的对象具有这种生存期。 在函数内部声明静态生存期对象,要冠以关键字static 。
3、动态生存期
①块作用域中声明的对象是动态生存期的对象(习惯称局部生存期对象)。
②开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。
4、数据与函数:数据成员
①将数据和使用数据的函数封装在类中。
②封装于类内的数据成员可以在类内实现共享。
③封装于类内的私有数据成员的结构变化一般不会影响程序的其余部分。
5、静态成员
⑴静态数据成员
①用关键字static声明
②在类内只作一个引用性声明
③必须在类外定义和初始化,用“::”来指明所属的类
③该类的所有对象维护该成员的同一个拷贝,或者说,这个成员对所有的对象都是透明的。所有的对象都可以通过这个成员实现数据共享。
⑵静态成员函数
①静态成员函数也是属于整个类。不论定义多少类的对象,静态成员函数也只有一个拷贝。
②静态成员函数也要通过static来声明。
③在程序中可以使用类名或对象名来调用静态成员函数。一般的成员函数只能通过对象名来调用。
④静态成员函数只能引用属于该类的静态数据成员或静态成员函数。
四、友元
1、概念
①友元是C++提供的一种破坏数据封装和数据隐藏的机制。 通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。
②可以使用友元函数和友元类。
③为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。
2、友元函数
①友元函数是在
您可能关注的文档
最近下载
- 滤油器体的工艺规程及夹具设计.doc VIP
- 2025年3月22日山东事业单位统考《行测》真题(含答案).pdf VIP
- 2025-2026学年人教版(2024)小学体育与健康二年级全一册教学计划及进度表(第一学期).docx
- 建设单位安全管理体系如何建立.docx VIP
- 苯妥英钠的合成.pdf VIP
- 中国糖尿病肾脏病基层管理指南解读PPT课件.pptx VIP
- 陕西省专业技术人员继续教育答案《党的二十届三中全会精神解读与高质量发展》(1).pdf VIP
- 2024年全国中考数学考试大纲 .pdf VIP
- 聚乙酸乙烯酯乳液(粘胶剂)-安全技术说明书MSDS.pdf
- 体外膜肺氧合ECMO讲解.pptx VIP
文档评论(0)