- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 类和对象 3.2 类的成员 3.2.3 静态成员 静态数据成员 * Object A int anint; Object B int anint; Object C int anint; static int sint; 第三章 类和对象 3.2 类的成员 3.2.3 静态成员 静态数据成员 静态成员的存储空间必须在类定义外进行分配,具体的语法如下: 类型名 类名::静态数据成员 [ = 常量表达式 ]; 由于静态数据成员的初始化工作不会自动进行(而一个函数内的静态数据若没有显示初始化,则自动初始化为0),因此在定义时为他们做初始化工作是必须的。 * 第三章 类和对象 3.2 类的成员 3.2.3 静态成员 静态数据成员 静态数据成员属于类,而不属于对象,因为静态成员的存在是不依赖于某个具体的对象的。在这个意义上,在类对象不存在的情况下,我们也可以访问到类的静态成员。不过,静态数据成员也分为公有和私有的,所以在类外只能访问公有的静态数据成员,且访问方式为: className::staticMember * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 首先,请大家设计一个日期类型。 * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 大家的考虑可能是这样的: struct Date { int day, month, year; } void InitDate(Date* pDate, int d, int m, int y); void AddYear(Date * pDate, int year); void AddMonth(Date * pDate, int month); void AddDay(Date * pDate, int day); 请考虑,这样的定义有没有不妥之处呢? * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 上页的定义至少存在这样的问题:针对数据的操作和数据没有明确的联系,它们都是相对独立的。所以,在加工数据时,必须将数据的实例作为参数传递给操作函数,数据是被动的。 然而,从应用的角度来看,数据应该是主动的,而操作是作为主体的数据主动发起的,也就是说,操作是被动的。 * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 C++的解决方案是:将操作归入数据结构。 struct Date { int day, month, year; void InitDate(int d, int m, int y); void AddYear(int year); void AddMonth(int month); void AddDay(int day); }; * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 经过这样的改造后,数据成为能动的主体,它不仅包含解决问题的数据,同时也包含加工数据的操作,从而数据与操作紧密地结合在一起。这种数据包真正地成为独立的单元。另外一方面,数据包内部的变化不会反射到它的外部。这就是说,数据内部结构的改变不会对使用这种数据包的程序部分带来影响。这就是数据封装的一般概念。 * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 一般地,C++是用类来实现封装机制的: class className { attributes; // data members; operations; // member functions; }; //注意这个分号的存在 这定义了一个新的数据类型:className。它既是类的名字,也是该类型的类型名。 * 第三章 类和对象 3.1 类与对象 3.1.1 类的定义 以下是日期类型的类版本: class Date { int day, month, year; void InitDate(int d, int m, int y); void AddYear(int year); void AddMonth(int month); void AddDay(int day); }; * 第三章 类和对象 3.1 类与对象 3.1.2 访问控制 在一个类中,可以被外部访问的部分被定义在public段中。这些成员被称为公有成员。不能被外部访问的部分被定义在private段或protected段中,分别称为私有成员和受保护的成员。 一个类外部的函数或者其他的类只能访问这个类的公有成员(有例外)。其他成员是访问函数或类不能“看见”的(invisible) ,也就是不能直接访问的(inaccessable)。 * 第三章 类和对象 3.1 类与对象 3.1.2 访问控制 class Date { private: int
您可能关注的文档
- 除芒机的结构与工作原理.ppt
- 除芒机的使用调整.ppt
- 除芒机的维护保养及安全使用.ppt
- 顶棚装饰梁施工.ppt
- 非正弦周期电流、电压的 有效值,平均值,平均功率.ppt
- 非正弦周期量的分解傅立叶级数展开.ppt
- 集成电路设计CAD_EDA工具实用教程1-Spectre_Verilog数模混合仿真.ppt
- 集成电路设计CAD_EDA工具实用教程2-Spice_Spectre.ppt
- 集成电路设计CAD_EDA工具实用教程10-布局布线.ppt
- 集成电路设计CAD_EDA工具实用教程12-可测性设计及DFT软件的使用.ppt
- 扶绥县山圩镇第二污水处理厂项目环境影响报告书.pdf
- 锰业产业优化升级改造工程一期项目环境影响报告书.pdf
- 年产1.5万辆电动三轮车生产项目环境影响报告表.pdf
- 凌云九垌岭风电场环境影响报告书.pdf
- 广西桂西北治旱龙江河谷灌区工程环境影响报告书.pdf
- 贺州至巴马公路(都安至巴马段)环境影响报告书.pdf
- 广西田东县江城镇六飘山锰矿开采项目环境影响报告书.pdf
- 广西天峨县穿洞河玉里村河段整治工程环境影响报告书.pdf
- 青年产业园精细化工、新型药肥、特种肥料系列产品生产基地(二期)环境影响报告书.pdf
- 松月~板坚铝(田林百矿铝)220千伏线路π接入500千伏田林站工程项目环境影响报告表.pdf
原创力文档


文档评论(0)