- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验5 类和对象的应用
一、实验目的
掌握类定义的基本格式和类成员的访问控制。
掌握对象定义和利用构造函数对对象的数据成员进行初始化的方法。
掌握成员函数的定义与使用。
理解并掌握静态数据成员和静态成员函数的使用方法。
理解友元函数的使用方法。
二、知识要点
1. 类的定义
在面向对象程序设计中,类(class)就是对现实世界中抽象出的“类”的模拟描述,是用户自己定义的数据类型,它的一般定义格式如下:
class 类名
{
private:
私有数据成员和成员函数;
protected:
保护数据成员和成员函数;
public:
公有数据成员和成员函数;
};
类中各个成员函数的实现
说明:protected访问控制符主要用在类的继承中,后续课继承中会讲到
类成员的访问控制
类的成员访问权限总体上可分为:公有的(public)、私有的(private)和保护的(protected)三类。若某个成员未作任何访问权限声明,则默认为私有的。
公有的成员用public来说明,这部分通常是一些操作(即成员函数),作为类与外界的接口,所有公有的成员可以在程序中的任何位置被访问。
私有的成员用private来说明,这部分通常是一些数据成员,这些成员用来描叙该类中对象的属性的,只有成员函数或经过特殊说明的函数(如友元函数)才可以引用它们,它们是特意被用户隐藏起来的部分,用户在类外其他地方是无法访问它们的。
保护的成员用protected来说明,它的限定能力介于私有和公有之间,除了类本身的成员函数、友元函数可以访问成员外,只有该类的派生类(子类)可以访问。
关键字public、private和protected被统称为访问权限修饰符或访问控制修饰符。它们在类体(即一对花括号内)出现的先后顺序没有要求,并且允许多次出现。
对象的定义
C++规定:必须先定义类,然后定义对象,用类来定义对象在格式上与普通类型定义变量是完全相同的.
定义对象的一般形式:
类名 对象名表;
对象成员的访问方式
对象成员访问的一般形式是:
对象名.数据成员名
或者
对象名.成员函数名([实参表])
构造函数的定义和分类
构造函数是类的一种特殊的成员函数,它的主要作用于是为对象分配空间和进行初始化工作。除了具有一般成员函数的特征外,还具有以下一些特殊的性质:
(1) 构造函数的名字必须与类名字相同;
(2) 构造函数可以有任意类型和任意个数的参数,所以构造函数可以重载,但不能指定返回值类型;
(3) 构造函数的函数体可以写在类体内,也可以写在类体外;
(4) 构造函数被声明为公有函数,但它不能像其他成员函数那样被显示的调用,而是在用类声明对象的同时被系统自动调用。
调用构造函数的一般形式是:
类名 对象名(参数表);
构造函数分为4类,分别是普通构造函数、默认构造函数、有缺省参数的构造函数和复制(拷贝)构造函数。
默认构造函数
默认构造函数是指没有任何参数的构造函数。如果在设计类时没有定义构造函数,C++编译程序会自动为该类建立一个默认的构造函数。这个默认构造函数没有任何形式参数,并且函数体为空。其格式如下:
类名::默认构造函数名() { }
按构造函数规定,默认构造函数名与类名相同。默认构造函数也可以由程序员直接定义在类体中。另外,如果构造函数的参数具有默认值时,这样的构造函数被称为有缺省参数的构造函数。
拷贝构造函数
拷贝构造函数是一种特殊的构造函数,用于依据已存在的对象建立一个新对象。其一般形式为:
class T
{
public:
T(const T 对象名);
……
}
T::T(const T 对象名 )
{ 函数体 }
其中,T代表任何一个类的名字。const是一个类型修饰符,被它修饰的对象是不能被改变的常量.
拷贝构造函数的拷贝分为浅拷贝和深拷贝。一般来说,只需浅拷贝时最好利用系统自动生成的拷贝函数,这样效率高。若需要在构造函数中开辟新的内存空间,则需要我们自己编写这样的构造函数以完成深拷贝。
拷贝构造函数主要在下面3种情况中起到初始化作用。
(1) 声明语句中用一个对象初始化另外一个对象,例如:
Person student2 (student1);
(2) 函数的参数是值参数时,若用对象作为函数实参传递给函数形参,这时需要调用拷贝构造函数。
(3) 当对象作为函数返回值时,如执行return R 时,系统将用对象R来初始化一个匿名对象,这时需要调用拷贝构造函数。
析构函数
析构函数是类的一种特殊成员函数,其功能是用来释放一个对象的内存空间。它的功能与构造函数正好相反.
析构函数的特点如下:
(1)
您可能关注的文档
最近下载
- 专题01 定语从句100题(考点串讲)(word版有答案).docx VIP
- 凿井井架设计汇编.doc VIP
- 北京某电力隧道工程投标施工组织设计.doc VIP
- 《【阅读专题2】故物与深情:感受血缘中的亲情》教学课件.pptx VIP
- 人教版九年级英语 课文标注笔记 全册.pdf VIP
- 北京某电力隧道工程(投标)施工组织设计.pdf VIP
- 高压旋喷桩技术交底1 - 桩基础.docx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 《【阅读专题1】忠与孝:体会宗法社会的伦理选择之难》教学课件 (1).pptx VIP
- 力普LP100说明书PDF_Image_Marked.pdf VIP
文档评论(0)