- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计第八章-2011解读
北京科技大学计算机系 C++大学基础教程 第8章 类与对象 类是实现C++面向对象程序设计的基础 面向对象程序设计的基本特点有:抽象、封装、继承和多态 类把数据和函数封装在一起,是C++封装的基本单元 第8章 类与对象 8.1 类是一种数据类型 8.2 类的定义 8.3 对象的定义 8.4 类的成员函数 8.5 类成员的访问属性 8.6 对象的使用 8.8 析构函数 8.9 拷贝构造函数 8.10 浅拷贝与深拷贝 8.11 静态成员 8.12 友元 8.13 常对象 8.14 常成员 8.15 组合关系 8.16 类模板 8.1 类是一种数据类型 8.1 类是一种数据类型 数据类型约束了变量所能参加的运算范围。例如,整型变量可以进行取模“%”运算,而实型变量则不可以进行该运算; 数据类型限定了变量所能取到的数值范围。例如,整型变量可以取值为1,2….., 100,…,而不能取值3.1415这样的实型数。 在C++中,类实际上相当于一种用户自定义的数据类型,对象就是该数据类型的一个变量; 类?---?数据类型 对象?--?变量 8.2 类的定义 8.2 类的定义 一个类表示现实生活中的一类事物,比如“学生”. 事物有相应的特征或属性,它们就是类的成员数据; 事物可能有行为动作,也可能被某些行为动作所操作,这些都用函数来实现,是构成类的函数成员,或者叫成员函数。 8.2 类的定义 举例: 8.2 类的定义 举例: 8.2 类的定义 类的声明具体说明类的组成,声明类的语法形式为: class 类的名称 { public: 公有成员数据; 公有成员函数; proteced: 保护成员数据; 保护成员函数; private: 私有成员数据; 私有成员函数; }; 8.2 类的定义 其中,“成员”既可以是数据,也可以是函数。 成员数据的声明方式与一般变量相同。 成员函数是描述类的对象可以进行的操作,一般在类中声明原型,在类声明的外面定义函数的具体实现。 8.2 类的定义 类的成员函数描述的是类的行为或操作。函数的原型声明要在类的主体中,原型说明了函数的参数表和返回值类型。而函数的具体实现一般是写在类声明之外的。 在类的外部定义成员函数的语法形式为: 返回值类型 类名::成员函数名(参数表) { 函数体 } 8.3 对象的定义 8.3 对象的定义 定义一个类后,只是有了描述该类事物的数据类型。当我们使用“类”这个数据类型定义一个变量时,就生成了一个该“类”的对象。对象有时又称为实例。 例如,Student stu(1,“wang”,‘M’); 定义了一个对象名字为stu的Student类型的对象。 8.3 对象的定义 定义一个对象和定义一个一般变量相同。 定义变量时要分配存储空间,同样,定义一个对象时要分配存储空间,一个对象所占的内存空间是类的数据成员所占的空间总和。类的成员函数存放在代码区。 类的成员是抽象的,对象的成员才是具体的。类的数据成员都不会有具体的属性值。只有对象的成员才会有具体的属性值。 8.3 对象的定义 类中成员互访 直接使用成员名 类外访问 使用“对象名.成员名”方式访问 public 属性的成员 8.4 类的成员函数 8.4 类的成员函数 类的成员函数可以有多种特殊形式,包括带默认参数值的成员函数、内联成员函数和重载成员函数。 8.4.1 带默认参数值的成员函数 class Student { public: Student(int pId, char* pName, char pSex); // 构造函数 void printStudent(); // printStudent函数声明 void setNationality(char* pNationality); // 设置国籍函数 private: int id; // 定义学号变量 char* name; // 定义姓名字符指针变量 char sex; // 定义性别变量 char* nationality; // 定义国籍字符指针变量 }; 8.4.1 带默认参数值的成员函数 void Student::setNationality(char* pNationality=China) { nationality = new char[strlen(pNationality)+1]; if(nationality != 0)
您可能关注的文档
最近下载
- 【社会层面】社会主义核心价值观.ppt VIP
- 回话有招高情商回话术书本.doc VIP
- 【社会层面】社会主义核心价值观精品课件.ppt VIP
- 沪教8AUnit6Ancientstories more practice-The story of 100,000 arrows 公开课优质课教案教学设计.doc
- 小学《科学》新教材培训研讨会:技术与工程领域总体介绍.pptx
- 2024年中考英语复习 并列复合句 讲义学案(解析版).pdf VIP
- 血常规结果解释ppt课件.pptx VIP
- 第16课 课件 2022-2023学年高中新经典日本语基础教程第二册.pptx VIP
- 软件工程专业生涯发展展示.pptx
- 成人脑室外引流护理——中华护理学会团体标准解读.pptx
文档评论(0)