C++程序设计:第9章 类的高级部分.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该文档是极速PDF编辑器生成, 如果想去掉该提示,请访问并下载: / 第 9 章 类的高级部分 1 主要内容 9.1 静态成员 9.2 友元 9.3 对象赋值问题 9.4 拷贝构造函数 9.5 运算符重载 9.6 对象组合 2 9.1 静态成员 • 例:一个学生类,定义其对象张三、李四,他 们分别维护着类成员的一份副本(学号、姓名、 籍贯等)。 • 如果要统计一个班学生总数? – 用类外的变量记录,违背了数据封装。 – 用类的一个数据成员记录,导致多个副本, 不仅冗余,而且势必造成数据不一致。 3 9.1.1 静态数据成员 1. 用关键字static声明; 2. 同一个类中的所有对象都共享该变量; 3. 必须在类外定义和初始化,用(::)来指明所属的类。 4. 静态变量不依赖于对象而存在,无论是否定义该类的 对象,这种类型的变量都存在。静态数据成员实际上 是在类外定义的一个变量,它的生存期和整个程序的 生存期一样,在定义对象之前,静态数据成员就已经 存在。 4 class StaticDemo { static int x ; int y ; public: 理解它! void putx( int a){ x=a ; } void puty( int b ){ y=b ; } int getx( ) { return x ; } int gety( ) { return y ; } } ; int StaticDemo::x ; 静态变量 将被 类的所有对象共享,例如: // x StaticDemo StaticDemo obj1, obj2 ; obj1.putx(5) ; obj1.puty( l0 ) ; obj2.puty(20 ) ; cout x: obj1.getx( ) obj2.getx( ) endl ; cout y: obj1.gety( ) obj2.gety( ) endl ; 9.1.2 静态函数成员 – 静态函数成员是类中的一个函数,有static修饰。 – 静态函数成员和静态数据成员类似,在对象生成 之前也已经存在。这就是说在对象产生之前,静 态的函数成员就能访问其它静态成员。 – 类外代码可以使用类名和作用域操作符来调用静 态成员函数。 – 静态成员函数只能引用属于该类的静态数据成员 或静态成员函数。见例 【例9-2 】。

文档评论(0)

cxlwxg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档