第6章 数据抽象对象与类.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 数据抽象对象与类

为了防止在获取对象状态的成员函数中改变对象的状态,可以把它们说明成const成员函数。const成员函数不能改变对象的状态(数据成员的值)。 例如: class A { int x; char *p; public: void f() const { x = 10; //Error p = new char[20]; //Error strcpy(p,“ABCD”); //不改变p的值,编译器OK } }; 给成员函数加上const修饰符还有一个作用:描述对常量对象所能进行的操作。 例如: class A { int x, y; public: void f() const { … … } void g() { … … } }; const A a; // 只能调用a的const函数 a.f(); // OK a.g(); // Error const成员函数放在类外定义时,函数声明和定义都要加上const。 例如: class A { … … void f() const; }; void A::f() const // 定义 { … … } 静态成员 不同对象需要共享数据。采用全局变量来表示共享数据违背数据抽象与封装原则,数据缺乏保护。静态数据成员为同一类对象之间的数据共享提供了一种较好的途径。 静态数据成员 静态成员函数 静态数据成员对所有对象只有一个拷贝。在类的外部给出它们的定义,进行初始化。 例如: class A { int x,y; static int shared; //静态数据成员说明 public: A() { x = y = 0; } void increase_all() { x++; y++; shared++; } int sum_all() const { return x+y+shared; } static int get_shared() { return shared; } }; int A::shared=0; //静态数据成员的定义 又如: A a1,a2; shared: 0 a1 a2 a1.x: 0 a2.x: 0 a1.y: 0 a2.y: 0 a1.increase_all(); cout a2.get_shared() , a2.sum_all() endl; //输出:1,1 静态成员函数只能访问静态成员,没有隐藏的this指针。 例如: class A { int x,y; static int shared; //静态数据成员说明 public: A() { x = y = 0; } static int set_shared( int I ) { shared = i; } static int get_shared() { return shared; } }; 静态成员访问 对象访问 例如:A a; a.set_shared(10); 类名受限访问 例如:A::get_shar

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档