面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt

面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt

ID:58988507

大小:318.00 KB

页数:43页

时间:2020-09-27

面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt_第1页
面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt_第2页
面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt_第3页
面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt_第4页
面向对象程序设计语言C++ - 第4章 深入类与对象ppt课件.ppt_第5页
资源描述:

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

1、面向对象程序设计语言C++电子科技大学示范性软件学院1第四章深入类和对象4.1构造函数4.1.1构造函数的作用在第三章讨论的的类Date中,有一个专门负责初始化对象状态的函数InitDate()。这个函数在对象创建后被显式地调用。这个步骤非常的重要,否则,类对象将处在一个未知的状态,其后续的操作也将会得到未知的结果。但问题是,程序员有的时候会忘记了调用初始化函数,或者调用了多次。这都是不好的现象。2第四章深入类和对象4.1构造函数4.1.1构造函数的作用C++为类设计了构造函数(constructor)机制,它可以达到自动初始化数据成员的目的。类的构造

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

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

4、)[:成员名(表达式)[,成员名(表达式)…]]Circle(intxc,intyc):x(xc),y(yc){}7第四章深入类和对象4.1构造函数4.1.2构造函数的定义3.缺省的构造函数用户定义的类类型中,可以没有构造函数。此时编译器会自动给该类类型生成一个没有参数的构造函数,该函数不作任何工作。这种构造函数称为缺省的构造函数。当建立一个对象时,这个缺省的构造函数被自动调用。不过,一旦一个类有一个显式定义的构造函数,哪怕这个函数是个空函数,编译器也不会代劳生成缺省构造函数了。8第四章深入类和对象4.1构造函数4.1.2构造函数的定义4.定义类对象时

5、给构造函数提供参数1)仅仅只有一个参数:类名对象名=参数;2)有一个或多个参数:类名对象名(参数列表);9第四章深入类和对象4.1构造函数4.1.3重载构造函数一个类可以提供多个构造函数,用于在不同场合进行类对象的初始化工作。很明显,这是构造函数的重载,它们的参数表必须互不相同。classDate{public:Date(intd,intm,inty);Date();Date(constchar*dateStr);};(ex4-5.cpp)10第四章深入类和对象4.2析构函数与构造函数对应的是析构函数。C++通过析构函数来处理对象的善后工作。析构函数没

6、有返回类型,没有参数,函数名是类名前加“~”。析构函数的作用为:(1)执行析构函数(一般没有具体的工作);(2)释放对象的存储空间。(该功能由系统自动完成。)(3)释放对象占用的资源。这项工作要有程序员设定。11第四章深入类和对象4.2析构函数可以使用完全限定名方式显式地调用析构函数;若没有显式调用,则在一个对象的作用域结束时,系统自动调用析构函数。系统自动调用构造函数和自动调用析构函数的顺序是相反的。classX{public:X(){}~X(){}};(ex4-8.cpp)12第四章深入类和对象4.3拷贝构造函数1.什么是拷贝构造函数构造函数的参数

7、可以是任何类型参数,甚至可以将自己类对象的(常量)引用作为参数,称它为拷贝构造函数。拷贝构造函数有两个含义:首先,它是一个构造函数,当创建一个新对象时,系统自动调用它;其次,它将一个已经定义过的对象(参数代表的对象)的数据成员逐一对应地拷贝给新对象。13第四章深入类和对象4.3拷贝构造函数1.什么是拷贝构造函数classX{public:X();X(constX&xObj);//拷贝构造函数,带有一个该类类型的对象引用参数};Xa,b(a);//b调用自己的拷贝构造函数来复制a14第四章深入类和对象4.3拷贝构造函数1.什么是拷贝构造函数如果一个类没有

8、显式定义拷贝构造函数,C++编译器可以为该类产生一个缺省的拷贝构造函数。这个缺省的拷贝构造函数

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

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

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