- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.6.2 静态成员函数 1.类中静态成员函数的定义格式 class 类名 { …… static 类型 函数名(形参) { 函数体} …… }; 北京林业大学 软件教研室 * 2.类的静态成员函数的调用 静态成员函数属于类,由同一个类的所有对象共享,所以,访问静态成员函数时不需要类的对象。 类名::静态成员函数名(实参表) 对象名.静态成员函数名(实参表) 在类的外部不能调用类中在protected和private部分说明的静态成员函数。 【例6-17】静态成员函数的使用。 北京林业大学 软件教研室 * 3.使用静态成员函数的其他注意事项 #include iostream.h class Student {protected: char name[40]; static int age; public: static void print() { cout nameendl; //不能直接访问类的非静态数据成员 cout ageendl; //可以直接访问类的静态数据成员 } }; int Student::age=18; void main() { Student s; s.print(); Student::print(); } 北京林业大学 软件教研室 * 【例6-18】下列程序中定义了一个类Sample,在private部分中定义了一个普通数据成员x和一个静态数据成员y,在public部分定义了一个构造函数和一个静态成员函数print。 北京林业大学 软件教研室 * 6.1.8 对象的作用域与生存期 对象是类的实例,它的实质就是某种数据类型的变量。 class Desk //定义Desk类 { public: int weight; int high; int width; int length; }; class Stool //定义Stool类 { public: int weight; int high; int width; int length; }; Desk da; //定义全局对象 Stool sa; void fn() { static Stool ss; //定义局部静态对象 Desk da; //定义局部对象 //…… } 北京林业大学 软件教研室 * 1.局部对象 局部对象(不包括局部静态对象)的作用域是定义它的函数体,其生存期是从函数调用开始到函数调用结束,当下一次重新调用函数时,再重新构造对象。 构造局部对象的次序(即分配存储单元的次序)是按照它们在函数体中声明的次序进行的。 局部对象所占的存储空间被分配在程序的动态区(栈区)中。 北京林业大学 软件教研室 * 2.静态对象 静态对象(局部静态对象和全局静态对象)的作用域是定义它的函数体或程序文件,其生存期是整个程序的运行时间。 构造静态对象的次序是按它们在程序中出现的先后次序,且在整个程序运行开始时(即在主函数运行前)只构造一次。 静态对象所占的存储空间被分配在程序的静态区(全局区)中。 北京林业大学 软件教研室 * 3.全局对象 全局对象的作用域是整个程序,其生存期是整个程序的运行时间。 它也是在程序运行前(即在主函数运行前)只构造一次。 全局对象所占的存储空间被分配在程序的静态区(全局区)中。 4.类中成员的构造次序 类中成员的构造次序是以类中声明成员的次序进行的。 北京林业大学 软件教研室 * 6.2 构造函数与析构函数 6.2.1 构造函数 构造函数(Constructor)是与类名同名的特殊的成员函数; 构造函数的执行是在系统创建对象时自动执行。 北京林业大学 软件教研室 * 构造函数的定义格式为: 类名(形参说明) { 函数体 } 【例6-5】类Person中包括4个数据成员,用来记录人员的信息;利用该类生成对象obj,且使用构造函数为obj赋予初始值。 北京林业大学 软件教研室 * 6.2.2 构造函数的重载 如果一个类中出现了两个以上的同名成员函数,则称为类的成员函数的重载。 一个类的成员函数和另一个类的成员函数同名; 一个类的成员函数与一个类外的函数同名; 北京林业大学 软件教研室 * 在类的成员函数的重载中,比较常见的形式是构造函数的重载。 在对象定义时,系统会根据参数的类型及个数选择调用某一种合适的构造函数完成对象的构造。 【例6-6】类Rec定义两个重载函数,其中,一个是无参函数,另一个是有参函数,且它们都是构造函数。 北京林业大学 软件教研室 * 6.2.3 默认构造函数与缺省参数的构造函数 C++规定,每个
您可能关注的文档
最近下载
- 欧洲规范-路基 - 法国标准在国有道路网应用指南-中文.pdf VIP
- (高清版)DB34∕T 4837-2024 小型泵站安全评价工作导则.docx VIP
- 2025国元农业保险股份有限公司安徽分公司下半年社会招聘12人笔试备考题库及答案解析.docx VIP
- 2025年某单位政治生态建设情况报告分析研判报告自查报告工作总结.docx VIP
- 防撞装置选定 - 用于不同施工点桥梁边缘.pdf VIP
- 基于单片机的智能寻迹小车设计.doc VIP
- 2025国元农业保险股份有限公司安徽分公司下半年社会招聘12人笔试参考题库附答案解析.docx VIP
- 欧洲规范-土方工程质量保证组织技术指南-中文.pdf VIP
- 供货安装培训调试方案.doc VIP
- 社会发展领域科技攻关计划项目可行性报告.doc VIP
原创力文档


文档评论(0)