面向对象程序设计语言C+第04章深入类与对象

面向对象程序设计语言C+第04章深入类与对象

ID:38493232

大小:820.06 KB

页数:61页

时间:2019-06-13

面向对象程序设计语言C+第04章深入类与对象_第1页
面向对象程序设计语言C+第04章深入类与对象_第2页
面向对象程序设计语言C+第04章深入类与对象_第3页
面向对象程序设计语言C+第04章深入类与对象_第4页
面向对象程序设计语言C+第04章深入类与对象_第5页
资源描述:

《面向对象程序设计语言C+第04章深入类与对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象程序设计语言C++电子科技大学计算机学院1第四章深入类和对象4.1构造函数4.1.1构造函数的作用classDate{intday,month,year;public:voidInitDate(intd,intm,inty);//初始化??…};程序员有的时候会忘记了调用初始化函数或者调用了多次。这都是不好的现象。2第四章深入类和对象4.1构造函数4.1.1构造函数的作用C++为类设计了构造函数(constructor)机制,它可以达到初始化数据成员的目的。类的构造函数是类的一个特殊成员函数,它没有返回类型(void也不行),可

2、以有参数,函数名和类名一样。当创建类的一个新对象时,自动调用构造函数,完成初始化工作(需要注意构造函数是否有参数,以及参数的个数、类型)。3第四章深入类和对象4.1构造函数4.1.1构造函数的作用构造函数的作用为:分配一个对象的数据成员的存储空间;(该功能由系统自动完成。)(2)执行构造函数(体),一般是初始化一个对象的部分或全体数据成员。4第四章深入类和对象4.1构造函数4.1.2构造函数的定义1.构造函数的定义classDate{private:intyear,month,day;public:Date(inty,intm,intd

3、);…//其它成员};构造函数的参数可以是缺省的。5第四章深入类和对象4.1构造函数4.1.2构造函数的定义2.构造函数的初始化方式构造函数有两种方式初始化数据成员:1)在构造函数体内用赋值语句的方式;Date::Date(inty,intm,intd){year=y;month=m;day=d;}6第四章深入类和对象4.1构造函数4.1.2构造函数的定义2)构造函数的初始化列表的方式Date::Date(inty,intm,intd):year(y),month(m),day(d){}7第四章深入类和对象4.1构造函数4.1.2构造函

4、数的定义3.缺省的构造函数用户定义的类类型中,可以没有构造函数。编译器会自动给该类类型生成一个没有参数的构造函数,该函数不作任何初始化工作。这种构造函数称为缺省的构造函数。注意:一个类如果有显式定义的构造函数,编译器就不会生成缺省构造函数了。8第四章深入类和对象4.1构造函数4.1.2构造函数的定义4.定义类对象时给构造函数提供参数1)仅仅只有一个参数:类名对象名=参数;2)有一个或多个参数:类名对象名(参数列表);9第四章深入类和对象4.1构造函数4.1.3重载构造函数一个类可以提供多个构造函数,用于在不同场合进行类对象的初始化工作。

5、构造函数的重载,它们的参数表必须互不相同。classDate{intyear,month,day;public:Date(intd,intm,inty);Date(intd,intm);Date(intd);Date();Date(constchar*dateStr);…};10则下述定义对象的方式都是正确的。Datetoday(8,10,2008);Dateday1(9,5);Dateday2(8);DateChristmas(“Dec25,2008”);Datenow;第四章深入类和对象4.2析构函数与构造函数对应的是析构函数。C+

6、+通过析构函数来处理对象的善后工作。析构函数没有返回类型,没有参数,函数名是类名前加“~”。析构函数的作用为:(1)执行析构函数(一般没有具体的工作);(2)释放对象的存储空间。(该功能由系统自动完成。)注意:析构函数需要负责释放new申请的空间。12第四章深入类和对象4.2析构函数可以使用完全限定名方式显式地调用析构函数;若没有显式调用,则在一个对象的作用域结束时,系统自动调用析构函数。系统自动调用构造函数和自动调用析构函数的顺序是相反的。classX{public:X(){}~X(){}};(ex4-8.cpp)13考虑一个数组,数

7、组的大小在定义时初始化,而且其大小在运行时可以改变。classArray{int*p;intsize;public:Array(intnum){size=num;p=newint[size];}~Array(){delete[]p;}...};第四章深入类和对象4.3拷贝构造函数1.什么是拷贝构造函数构造函数的参数可以是任何类型参数,甚至可以将自己类对象的(常量)引用作为参数,称它为拷贝构造函数。拷贝构造函数有两个含义:首先,它是一个构造函数,当创建一个新对象时,系统自动调用它;其次,它将一个已经定义过的对象(参数代表的对象)的数据成员

8、逐一对应地拷贝给新对象。15第四章深入类和对象4.3拷贝构造函数classA{intx;inty;public:A(int,int);//一般构造函数A(constA&objA)//拷贝构造函数{x=obj

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。