类和构造函数.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文档。上传文档
查看更多
31 3-1-6 封装 ? 类的封装的概念首先是,数据与算法 ( 操作 ) 结合, 构成一个不可分割的整体 ( 对象 ) 。 ? 其次是,在这个整体生 — 些成员是保护它们被有 效地屏蔽,以防外界的干扰和误操作。 ? 另一些成员是公共的,它们作为接口提供给外界 使用。而对该对象的描述即是创建用户定义的类 型,对 C++ 来说,就是类的实现机制。 32 3-1-6 封装 ? 一个 Point 类的图形描述 xoffset yoffset set angle radius Point 类 x y … 33 3-1-6 封装 #include math.h #include iostream class Point { public : void Set(double ix , double iy) // 设置坐标 { x=ix; // x, y 是类的保护成员 y=iy; } //... } 34 3-1-6 封装 double Point:: xOffset( ) // 取 x 坐标分量 { return x; } double Point:: yOffset( ) // 取 y 轴坐标分量 { return y; } 提供了成员函数 来访问保护成员 35 3-1-6 封装 #includemath . h class Point { public : void Set(double ix , double iy) // 算法变了 , 接口不变 { a=atan2(iy , ix) ; r=sqrt(ix*ix+iy*iy) ; } double xOffset( ) // 接口不变 { return r*cos(a); } 36 3-1-6 封装 ? 课堂练习 ? 定义一个大米仓库类 , 数据成员包括品种 , 入库价格 , 出库 价格 , 库存 , 收入 , 成员函数是进货和卖出 , 和打印成员的 函数 37 3-1-6 封装 #include iostream class riceStore { private: char kind[20]; double inPrice; double outPrice; double store; double income; public: void sell( double price, double weight); void buy( double price, double weight); void print( ); }; 38 3-1-6 封装 ? 类的作用域 ? 一个类的所有成员位于这个类的作用域内 ? 类作用域是类定义和相应类成员定义范围 ? 对类作用域外的一个类的数据成员和成员函数的 访问受到程序员的控制 39 3-1-6 封装 class x { public : void fl( ); void f2( ); protected : int m; }; void x::fl( ) { m=5; } void x::f2( ) { int m; m=2; //x::m 被隐藏 } 40 3-1-6 封装 ? 类名的可见性 class Sample // 定义类 { // ... }; void func(int Sample) // 函数形参隐藏了类名 { class Sample a ; // 定义一个对象要用到类名 Sample++ ; // 形参的算术操作 //… } 41 3-1-6 封装 ? 可见性 ? 如果一个类型名隐藏了一个非类型名,则用一般作用域规则 即可。 int s=0 ; // 全局变量 void func( ) { class s{ //…}; // 类 s 隐藏了全局变量 s s a; // 定义一个类对象 ::s=3; // 引用全局变量 } //class s 作用域结束 int g=s ; // 用全局变量 s 给变量 g 初始化 42 3-1-6 封装 ? 共享库的构成 ? 一个商业性类库包括一个类定义和成员函数定义。 ? C++ 程序结构 ? 一个 C++ 应用程序是一个程序工程。一个 c++ 程序 工程文件中,应该组合下面这些程序 ? 文件: main.cpp ? class . cpps ? function . cpps 43 3-1-6 封装 ? 其中包含主函数的源文件应该是下面的形式: #include 标准类库头文件 s #include 标准函数头文件 s #include” 自定义类库

文档评论(0)

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

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

1亿VIP精品文档

相关文档