C++程序设计教程第8章.pdfVIP

  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文档。上传文档
查看更多
第8章 类 与 对 象 教学提示:C++程序设计语言被认为是一种混合型语言,其主要特点是既支持面向过 程的程序设计,又全面支持面向对象的程序设计。面向对象的程序设计语言有 3 个特性: 封装性、继承性和多态性。通过这些特性来模拟自然界真实的世界,从而改进了软件设计 的设计理念和方法。 类是面向对象程序设计的核心,它实际上是一种新的数据类型,也是实现数据抽象和 过程抽象的综合体。类是某一类对象的抽象化,而对象是某一种类的实例化,因此,类和 对象是密切相关的。没有脱离对象的类,也没有不依赖于类的对象。 本章将讨论类的定义、对象的声明以及如何更好地设计、实现一个类的相关知识。 学习目标: 掌握类和对象的定义方法; 理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 掌握构造函数和析构函数的含义与作用、定义方式和实现; 理解静态成员的特性; 掌握内联函数和重载函数在类设计上的应用; 掌握友元函数和友元类的含义和特点; 了解嵌套类的定义方式,掌握子对象的初始化方法; 理解对象指针和对象数组的定义和使用方法; 掌握常类型函数参数的使用要领; 掌握常对象、常成员的定义、使用方法。 8.1 类和对象的定义 8.1.1 类的定义 不同的事物构成了丰富多彩的世界,为了更好地了解世界、改造世界,我们常常将事 物分成不同的类,如人类、鸟类等。也就是说,“类”是具有相同属性和行为的事物的归 并集合。显然,“类”不代表任何具体的事物,具有一定的抽象性。根据事物属性和行为 的不同,可以分化抽象出许多不相同的类。 在现实世界中并不真正存在类,存在的只是属于某类的一个个具体的事物,称之为对象。 在面向对象程序设计中,类(class)就是对现实世界中抽象出的“类”的模拟描述,是用 户自己定义的数据类型,它的一般定义格式如下: class 类名 { private: 第 8章 类与对象 ·213 · 私有数据成员和成员函数; protected: 保护数据成员和成员函数; public: 公有数据成员和成员函数; }; 类中的各个成员函数的实现 关于类的定义有以下几点说明。 (1) class 是定义类的关键字,类名是一个标识符,用于唯一地标识一个类。 (2) 类的定义分为两个部分:第 1 部分是类的说明部分,说明该类所拥有的成员(包括 数据成员和函数成员) ;第2 部分是实现部分,它对类内说明的成员函数进行定义,即给出 函数功能的具体实现。 (3) 在类外对类成员函数的定义必须在函数名前加类名和运算符“::”,符号“::”称 为作用域运算符(也称作用域分辨符) 。它是用来表示某个成员函数属于哪个类的。 (4) public(公有) 、private(私有)和 protected(保护)3 个关键字用来确定类成员的访问权 限,其中默认为private 。 下面先看一个关于日期类的定义例子。 //说明部分 class Date { public: void InputDate(int y,int m,int d); int IsLeapyear( ); void print( ); private: int year,month,day; }; //实现部分 void Date ::InputDate(int y,int m,int d) { year=y; month=m; day=d; } int Date::IsLeapyear( ) { return (year%4==0year

文档评论(0)

智慧书苑 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档