2022年c教案第三章类与对象 .pdf





《2022年c教案第三章类与对象 .pdf》由会员分享,可在线阅读,更多相关《2022年c教案第三章类与对象 .pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7 长 春 工 业 大 学 课 程 教 案讲 稿 用 纸讲授内容教学设计备注第 4 章 类和对象学习目的掌握类的基础知识掌握如何使用对象掌握构造函数和析构函数掌握内联成员函数掌握类的组合学习要点类的特点、类的声明、类作用域、类成员函数设计类成员的访问权限对象的定义方法对象的数据成员访问方法对象的成员函数调用方法类对象的存储空间构造函数特点及设计方法析构函数特点及设计方法对象的生存期对象的浅复制与深复制类的组合4.1 类4.1.1类的声明类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的集合体。类将一些数据及与数据相关的函数封装在一名师资料总结-精品资料欢迎下载-名师
2、精心整理-第 1 页,共 14 页 -8 起,使类中的数据得到很好的“保护”。在大型程序中不会被随意修改。类的定义格式:class 类名 /类界面private:数据成员和成员函数;public:数据成员和成员函数;protected:数据成员和成员函数;;各个成员函数的实现;/类实现用关键字 priviate 限定的成员称为私有成员,对私有成员限定在该类的内部使用,即只允许该类中的成员函数使用私有的数据成员,对于私有的成员函数,只能被该类内的成员函数调用;类就相当于私有成员的作用域。如果未加说明,类中成员默认的访问权限是private,即私有的。用关键字 public 限定的成员称为公有成员
3、,公有成员的数据或函数不受类的限制,可以在类内或类外自由使用;对类而言是透明的。用关键字 protected所限定的成员称为保护成员,只允许在类内及该类的派生类中使用保护的数据或函数。即保护成员的作用域是该类及该类的派生类。私有成员公有成员保护成员类内函数可以调用可以调用可以调用类外函数不可调用可以调用不可调用私有函数公有函数保护函数类内函数可以调用可以调用可以调用类外函数不可调用可以调用不可调用每一个限制词(private 等)在类体中可使用多次。一旦使用了限制词,该限制词一直有效,直到下一个限制词开始为止。1、类具有封装性,并且类只是定义了一种结构(样板),所以类中的任何成员数据均不能使用
4、关键字 extern,auto或register 限定其存储类型。2、在定义类时,只是定义了一种导出的数据类型,并不为 类 分 配 存 储 空间。所以,在定义类 中 的 数 据 成 员时,不能对其初始化。如:class Test int x=5,y=6;/是不允许的extern float x;/是不允许的 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 14 页 -9 4.1.2成员函数类的成员函数描述的是类的行为或操作。如果在类的内部定义成员函数的具体实现,则该成员函数为内联成员函数。在类外部实现的成员函数中,对编译提出内联要求,成员函数定义前面加 inline。如果在类的外
5、部定义成员函数的具体实现,函数的原型声明在类的主体中,原型说明了函数的参数表和返回值类型,而函数的具体实现写在类声明之外。在类的外部定义成员函数的语法形式为:返回值类型类名:成员函数名(参数表)函数体 4.2 对象在定义类时,只是定义了一种数据类型,即说明程序中可能会出现该类型的数据,并不为类分配存储空间。只有在定义了属于类的变量后,系统才会为类的变量分配空间。类的变量我们称之为对象。对象是类的实例,定义对象之前,一定要先说明该对象的类。不同对象占据内存中的不同区域,它们所保存的数据各不相同,但对成员数据进行操作的成员函数的程序代码均是一样的。4.2.1对象的定义格式类名对象名表;在建立对象时
6、,只为对象分配用于保存数据成员的内存空间,而成员函数的代码为该类的每一个对象所共享。定义一个对象和定义一个一般变量相同。定义变量时要分配存储空间,同样,定义一个对象时要分配存储空间,一个对象所占的内存空间是类的数据成员所占的空间总和。类的成员函数存放在代码区,不占内存空间。类中的成员函数可以调用类外定义的普通函数。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 14 页 -10 4.2.2对象的使用一个对象的成员就是该对象的类所定义的成员,有数据成员和成员函数,引用时同结构体变量类似,用“.”运算符。用成员选择运算符“.”只能访问对象的公有成员,而不能访问对象的私有成员或保护成员
7、。若要访问对象的私有的数据成员,只能通过对象的公有成员函数来获取。调用成员形式:对象名.成员;4.2.3 对象的存储空间C+只为每一个对象的数据成员分配内存空间,类中的所有成员函数只生成一个副本,而该类的每个对象执行相同的函数成员副本。类的所有成员函数均放在公用区中(只保存一份),每个函数代码有一个地址,类的每个对象中只存放自己的数据成员值和指向公共区中对应函数的地址,即类的成员函数是共享的。4.2.4例题1.设计一个日期类 Date,包括年、月、日等私有数据成员,要求实现对日期的设置及输出显示。(显示格式为“月-日-年”)#include using namespace std;class
8、Date public:void setDate(int y,int m,int d);void showDate();private:int year,month,day;void Date:setDate(int y,int m,int d)year=y;month=m;day=d;如果类中没有任何数据成员,size为1,确保不同对象有不同的地址。数据存储对齐方式则以两两之间的最大字节对齐,比如char 与 int以 4 字节对齐,占用了一个 8 字节空间。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 14 页 -11 void Date:showDate()coutmon
9、th-day-yearendl;int main()Date D;int year,month,day;coutyearmonthday;D.setDate(year,month,day);D.showDate();return 0;2.设计一个学生类 Student,包括学生的学号,姓名,年龄,家庭住址信息,要求设置并输出这些学生的信息。#include#include using namespace std;class Student public:void setStudent(int n,char na,int a,char addr);void showStudent();priva
10、te:int no;char name20;int age;char address50;void Student:setStudent(int n,char na,int a,char addr)no=n;strcpy(name,na);age=a;strcpy(address,addr);void Student:showStudent()名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 14 页 -12 coutno name age addressendl;int main()Student std;std.setStudent(1,Mary,20,吉林省长春市);std.
11、showStudent();return 0;4.3 构造函数和析构函数4.3.1 构造函数定义在定义一个对象的时候进行的数据成员设置,称为对象的初始化。构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态。构造函数在对象被创建的时候将被自动调用。如果程序中未声明,则系统自动产生出一个隐含的参数列表为空的构造函数。定义构造函数的一般形式为:class 类名 public:类名(形参表);/构造函数的原型/类的其它成员;类名:类名(形参表)/构造函数的实现/函数体 类的构造函数承担对象的初始化工作,它旨在使对象初值有意义。对构造函数,说明以下几点:1.构造函数的函数
12、名必须与类名相同。构造函数的主要作用是完成初始化对象的数据成员以及其它的初始化工作。2.在定义构造函数时,不能指定函数返回值的类型,也不能指定为void类型。3.在类的内部定义的构造函数是内联函数。构造函数可以带默认形参值,也可以重载。一个类可以定义若干个构造函数。当定义多个构造函数时,名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 14 页 -13 必须满足函数重载的原则。类对象创建时,构造函数会自动执行;由于它们没有类型,不能像其他函数那样进行调用。当类对象说明时调用哪一个构造函数取决于传递给它的参数类型。4.若定义的类要说明该类的对象时,构造函数必须是公有的成员函数。如果定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年c教案第三章类与对象 2022 教案 第三 对象

限制150内