从零开始c教学第7章类_第1页
从零开始c教学第7章类_第2页
从零开始c教学第7章类_第3页
从零开始c教学第7章类_第4页
从零开始c教学第7章类_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章类在前面的章节中,已经向用户介绍了C++语言的相关基础知识。通过对这些C++基础的学习,用户已经掌握了相关的知识要点。对于C++语言的学习而言,用户还可以使用一些新特性进行程序编写。用户通过在程序中,使用一些C++新特性可以使程序的运行效率得到提高,并且更好的方便用户进行程序结构的设计。7.1 C++新特性在C++语言中,除了前面一些所介绍过的知识点以外,还具有其他一些非常重要的特性。例如,封装、继承、抽象以及多态等特性。用户通过这些特性,可以使程序的结构更加紧密,使程序的运行效率得到提高。因此,在本节中,将向用户介绍关于C++新特性的相关基础知识。7.1.1

封装封装在C++语言中,是非常重要的一个特性。通常情况下,用户可以将具有相同属性或行为的一类事物使用一个有机的整体进行表示。并且在这个有机的整体中对一些重要的属性或行为进行隐藏,即使用者在有机整体的外部不能直接对这些隐藏的成员进行访问。用户对事物的属性等进行隐藏的过程称为封装。在C++程序中,用户使用封装的目的是为了将同一类事物中的重要属性或行为进行隐藏。通常,在程序中,用户封装重要的数据是通过C++类进行实现的,即使用C++关键字

“class”对封装进行说明。7.1.2

抽象抽象是指用户将现实世界中的事物通过C++类表现出来。即将现实中的事物通过代码的形式进行表现。用户通过抽象,可以将复杂的现实世界使用简单的C++语言表达出来。通常情况下,用户对事物进行抽象时,必须将该事物的相关属性进行详细的分析。并按照C++的封装规则和类中的数据访问控制将这些属性封装到相应的类中。用户需要对学生的相关属性进行详细的分析。学生本身的属性应该包括学生姓名、学生年龄、学生性别等信息。与之相关的还有学生所在的院系、学号、所学课程以及课程成绩等相关信息。但是,用户还需要实现外界与学生类进行联系的接口函数,以便用户修改、获取该类内部中的相关数据。7.1.3

继承在C++语言中,类还可以通过继承机制对类中的属性及相关的行为进行传递。也就是说用户可以将父类中的属性和行为传递到该类的子类中。那么,子类的实例对象便可以使用父类中的相关数据或者函数进行相关的操作。【实例7.1】用户在程序中定义了一个类“student”表示学生类,而另外定义一个类“stu”表示中学生类。其中中学生类是从学生类继承而来的子类。用户在子类中,无须定义任何成员变量,可以直接使用继承而来的父类的成员变量即可。7.1.4

多态在C++语言中,用户可以将父类中的成员函数定义为虚函数,使多个子类继承于一个父类。而使用父类中的同一个成员函数通过继承之后实现不同的作用。通常情况下,用户使用关键字“virtual”进行定义。对于面向对象的编程中,多态性编程是非常重要的。7.2 C++类成员在C++自定义类中,用户可以在其中包含很多成员,包括了成员变量以及成员函数等。但是,类成员变量又可以分为预定义成员变量和自定义的成员变量。例如,C++中非常重要的this指针就是预定义的成员变量。而类成员函数中也包括了预定义成员函数以及自定义的成员函数。因此,用户在C++类中,可以包含很多不同类型的成员。7.2.1

成员变量成员变量对于自定义类而言是非常重要的,因为成员变量标识了与该类相关的重要属性。并且用户也可以通过成员变量实现数据的共享。因此,类成员变量是自定义类中不可缺少的一种成员数据。在C++类中,用户可以使用访问控制功能对其成员变量进行访问控制。通常情况下,用户需要将类的一些重要属性的访问控制设置为私有,即将其访问控制符设置为

“private”即可。7.2.2

对象初始化在面向对象编程中,实例对象的初始化操作也是用户需要非常注意的一个问题。并且在C++类继承中,子类与父类的实例对象初始化操作的方法以及初始化顺序也是非常需要用户注意的。继承类对象的初始化实例:【实例7.3】用户定义两个类,使其具有继承关系。并通过对构造函数的调用顺序判断继承类对象初始化的顺序。7.2.3

复制对象(拷贝构造函数)在C++语言中,还有一种比较特殊的构造函数称为“拷贝构造函数”。通常情况下,用户会使用拷贝构造函数对类的实例对象进行复制。因此,用户在实现拷贝构造函数的时候,必须在该构造函数内部将实例对象相关的数据进行复制。一般,拷贝构造函数的定义与该类构造函数的定义方法相同。两者不同的地方在于拷贝构造函数的参数类型应该是类本身的类型。也就是说,拷贝构造函数只能在相同类型的实例对象之间进行复制操作。如果是不同类型的实例对象,则用户不能通过拷贝构造函数对其进行复制了。【实例7.4】用户在类“A”中,可以定义一个拷贝构造函数用于该类实例对象之间的复制。7.2.4 this指针在C++语言中,每个类均有一个特殊的指针“this”。该指针在程序中,表示该类的实例对象本身。因此,用户在程序中,使用指针“this”会提高实例程序的运行效率。在本小节中,将向用户介绍指针“this”的具体使用方法。通常情况下,用户在C++代码中,可以使用该指针对类中的所有成员变量或函数进行调用。这样,用户便可以准确地使用各个实例对象中的相同属性数据,防止出现误操作。例如,用户可以在类成员函数中使用指针“this”,调用类中的成员变量。【本例代码位置:源文件\07\this指针实例\this指针实例.cpp】7.2.5

自定义类实例通过前面基础知识的学习,用户应该对C++的一些新特性、类的实例化及其成员的使用方法都非常地了解了。那么,在这一小节中,将通过一个实例程序向用户讲解C++语言的新特性、实例对象的创建等相关操作方法。【实例7.5】用户将前面所讲解的各个知识点进行综合,实现一个自定义类的实例程序。7.3

创建类的指针实例对象在前面的知识中,已经向用户介绍了如何创建C++类实例对象以及如何对类成员进行操作的相关方法。实际上,用户还可以在C++语言中,为类创建相应的指针实例对象。这样,用户就可以使用指针对象实现与实例对象相同的作用。那么在本节中,将向用户介绍如何在程序中创建C++类的指针对象的相关方法,以及如何使用所创建的指针对象对类中的成员进行调用等方法。7.3.1

创建类指针对象用户除了在程序中,创建类的实例对象之外,还可以为C++类创建相应的指针实例对象。用户也可以使用指针实例对象对类中的成员进行访问。因此,在本小节中,将向用户介绍如何在程序中,创建类的指针对象的相关方法。用户在程序中创建指针实例对象时,必须使用关键字

“new”进行指针实例对象的创建。并且,在程序中,用户必须使用符号“*”对指针对象进行标识。……A

*a1=new

A();……//省略部分代码//创建类A的指针实例对象//省略部分代码7.3.2

访问对象成员当用户在程序中,将指针实例对象创建成功之后,则可以通过该指针对象对类中的成员变量或者成员函数进行访问了。因此,在本小节中,将向用户介绍如何在程序中,使用指针实例对象对类中的成员数据进行访问的相关方法。例如,用户在程序中,使用指针实例对象对类中的成员变量或成员函数进行访问。其具体的代码如下所示:a1->str=”C++程序”;//对类中的成员变量进行赋值a1->GetString(); //使用指针实例对象在上面的代码中,用户使用指针实例对象“a1”,并结合符号“->”对类中的成员变量“str”和成员函数

“GetString()”进行访问。7.3.3

删除类指针对象用户创建了指针实例对象,则应该在该指针对象使用完成后,对这个指针对象进行删除。否则,该指针实例对象会一直存在在内存中直到应用程序结束为止。那么,在程序中,没有被删除的指针实例对象会占用较大的内存空间,导致内存的浪费。因此,在本小节中将向用户介绍如何对已经创建的指针实例对象进行删除操作。通常情况下,用户对创建的实例对象进行删除操作,需要使用到关键字“delete”。其基本的使用格式如下所示:01 delete

实例对象名;

//删除实例对象在上面的代码中,用户使用关键字“delete”对已经创建好的实例对象进行删除操作。7.3.4

对象生存周期在C++语言中,用户所创建的实例对象是具有相应的生存周期的。因此,在本小节中,将向用户介绍一下C++对象的生存周期。通常情况下,实例对象在一对大括号“{}”之间是具有生存周期的。当程序运行完毕后,用户在大括号“{}”之间创建的任何实例对象都会被删除或析构。7.3.5

指针对象实例程序在前面的几个小节中,主要向用户介绍了如何在程序中创建指针实例对象,并使用该对象对类成员进行访问等操作方法。那么,在本小节中,将通过编写实例程序向用户进行讲解指针实例对象的相关操作方法。【实例7.6】用户在程序中,分别定义一个指针实例对象以及普通的实例对象。再使用各自的方法对类中的成员近调用。用户可以将程序输出的结果进行对比。以便更好地理解指针实例对象的相关操作方法。7.4 C++类的成员函数用户在C++语言中,对类成员函数进行操作时,通常分为成员函数的定义以及成员函数的功能实现。通常情况下,成员函数的定义都是在类中进行的,而成员函数的功能实现则可以在类中或者是类外进行均可。因此,在本小节中,将向用户介绍如何操作C++类中的成员函数的相关方法。7.4.1

定义成员函数原型通常,C++类中的成员函数原型都是在类中进行定义的。并且在定义的同时,用户需要为其设置相应的访问控制。以便类的实例对象进行调用。在本小节中,将向用户介绍如何在C++类中进行成员函数的定义。用户在C++类中进行成员函数定义的方式与其他函数的定义方式基本相同。其不同的地方在于类成员函数的定义是在类中进行的,并且包含了访问控制的设置。7.4.2

实现成员函数功能当用户将类中的成员函数定义好之后,还必须在该类中或者是类外对成员函数的相关功能进行实现。这样,成员函数才能实现相关的功能。在本小节中,将向用户介绍如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论