- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 C++程序的结构 本章主要内容 5.1 作用域与可见性(复习C) 5.2 对象的生存期 5.3 静态成员(重点) 5.4 友元 (重点) 5.5 共享数据的保护(难点,了解) 5.6 多文件结构和编译预处理命令(复习C) 5.1 作用域与可见性(Domain and Visibility) 函数原型的作用域 函数原型中的参数,作用域始于(,结束于)。 例如,设有下列原型声明: double Area(double radius); 块作用域 在块中声明的标识符,其作用域自声明处起,限于块中,例如: 类作用域 类X的成员M具有类作用域,对M的访问: 类内:成员函数可以访问成员M。 类外: 通过对象T访问T.M或用X::M访问。 通过对象指针prt-M访问(第6章)。 文件作用域 其他声明具有文件作用域,开始于声明点,结束于文件尾。 可见性 可见性:从内层作用域向外层作用域“看”时能否看见。 如果标识符只在外层声明,则它在内层可见。 如果标识符在外、内层中都有声明,则外层标识符在内层不可见。 例5.1 作用域 #includeiostream using namespace std; int i; // 这个 i 具有文件作用域 int main() { i=5; { int i; // 这个 i 具有块作用域 i=7; couti=iendl; //输出7 } couti=i; //输出5 return 0; } 本章主要内容 5.1 作用域与可见性(复习C) 5.2 对象的生存期 5.3 静态成员(重点) 5.4 友元 (重点) 5.5 共享数据的保护(难点) 5.6 多文件结构和编译预处理命令(复习C) 对象的生存期(Lifestyle) 生存期:对象从产生到结束的这段时间。 动态生存期(普通的) 开始于声明点,结束于作用域结束处。 静态生存期(特殊的) 文件作用域 要用关键字static声明。 #includeiostream using namespace std; int i=5; //文件作用域 int main() { couti=iendl; return 0; } i具有静态生存期 例5-3 具有静态、动态生存期对象的时钟程序 #includeiostream using namespace std; class Clock //时钟类声明 { public: //外部接口 Clock(); void SetTime(int NewH, int NewM, int NewS); // 形参具有函数原型作用域 void ShowTime(); ~Clock(){} private: int Hour,Minute,Second; // 私有数据成员具有类作用域 }; //Clock 类成员函数实现 Clock::Clock() //构造函数 { Hour=0; Minute=0; Second=0; } void Clock::SetTime(int NewH, int NewM, int NewS) { Hour=NewH; Minute=NewM; Second=NewS; } void Clock::ShowTime() { coutHour:Minute:Secondendl; } 本章主要内容 5.1 作用域与可见性(复习C) 5.2 对象的生存期 5.3 静态成员(重点) 5.4 友元 (重点) 5.5 共享数据的保护 (难点) 5.6 多文件结构和编译预处理命令(复习C) 类的静态成员 class Point { public: Point(int xx=0, int yy=0) {X=xx; Y=yy; countP++; } Point(Point p); void GetC() {cout Object id=countPendl;} private: int X,Y; int countP; }; 例5-4 具有静态数据成员的 Point类 #include iostream using namespace std; class Point { public: Point(int xx=0, int yy=0) {X=xx; Y=yy; countP++; }
您可能关注的文档
最近下载
- 2023年山东省青岛市市北区“未来之星”选拔活动试卷(四、五年级).pdf VIP
- 鲁科版高中化学目录.pdf VIP
- 金融英语翻译 Chapter 15 应收款项.pptx VIP
- 烟草法律知识考试真题题库(含答案).pdf VIP
- 三年级上册 劳动教案.pdf VIP
- DB12T 775-2018 防雷装置检测业务规范.docx VIP
- 专题2.6 一元二次方程应用-几何动态问题(专项训练).pdf VIP
- 觉醒年代人物小传800字.doc VIP
- [通力KONE电梯资料]CTP-07.30.S2A_安全钳.pdf VIP
- 【名校课堂】九年级数学下册 28.1 锐角三角函数 正弦(第1课时)练习 (新版)新人教版.doc VIP
文档评论(0)