C++_Chapter9

C++_Chapter9

ID:41299280

大小:230.00 KB

页数:63页

时间:2019-08-21

C++_Chapter9_第1页
C++_Chapter9_第2页
C++_Chapter9_第3页
C++_Chapter9_第4页
C++_Chapter9_第5页
资源描述:

《C++_Chapter9》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1第9章关于类和对象的进一步讨论9.1构造函数9.2析构函数9.3调用构造函数和析构函数的顺序9.4对象数组9.5对象指针9.7对象的动态建立和释放9.8对象的赋值和复制9.9静态成员9.10友元9.11类模板29.1构造函数9.1.1对象的初始化在建立一个对象时,常常需要作某些初始化的工作,例如对数据成员赋初值。如果一个数据成员未被赋值,则它的值是不可预知的,因为在系统为它分配内存时,保留了这些存储单元的原状,这就成为了这些数据成员的初始值。这种状况显然是与人们的要求不相符的,对象是一个实体,它反映了客观事物的属性(例如时钟的时、分、秒的

2、值),是应该有确定的值的。3如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。如这种情况和结构体变量的初始化是差不多。但是,如果数据成员是私有的,或者类中有private或protected的成员,就不能用这种方法初始化。classTime1{public://声明为公用成员inthour;intminute;intsec;};Time1t1={14,56,30};//将t1初始化为14:56:304在第8章的几个例子中,是用成员函数来对对象中的数据成员赋初值的(例如例8.3中的set_time函数)。从例8.3中可

3、以看到,用户在主函数中调用set_time函数来为数据成员赋值。如果对一个类定义了多个对象,而且类中的数据成员比较多,那么,程序就显得非常臃肿烦琐。59.1.2构造函数的作用为了解决这个问题,C++提供了构造函数(constructor)来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。构造函数的名字必须与类名同名,以便编译系统能识别它并把它作为构造函数处理。它不具有任何类型,不返回任何值。构造函数的功能是由用户定义的,用户根据初始化的要求设计函数体和函数参数。6#inclu

4、deusingnamespacestd;classTime{public:Time()//定义构造成员函数,函数名与类名相同{hour=0;//利用构造函数对对象中的数据成员赋初值minute=0;sec=0;}voidset_time();//函数声明voidshow_time();//函数声明private:inthour;//私有数据成员intminute;intsec;};7voidTime::set_time()//定义成员函数,向数据成员赋值{cin>>hour;cin>>minute;cin>>sec;}v

5、oidTime::show_time()//定义成员函数,输出数据成员的值{cout<

6、进行声明而在类外定义构造函数。将程序中的第5~8行改为下面一行:在类外定义构造函数:Time::Time()//在类外定义构造成员函数,要加上类名Time和域限定符“∷”{hour=0;minute=0;sec=0;}Time();//对构造函数进行声明9有关构造函数的使用,有以下说明:在Class实例化一个对象之初会调用构造函数(在对象被创建的时候就会调用构造函数)。构造函数没有返回值,因此也不需要在定义构造函数时声明类型。构造函数不需也不能被用户调用。在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句。但是一般不提倡在构

7、造函数中加入与初始化无关的内容。如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。109.1.3带参数的构造函数有时用户希望对不同的对象赋予不同的初值。可以采用带参数的构造函数。构造函数首部的一般格式为:构造函数名(类型1形参1,类型2形参2,…)用户是不能调用构造函数的,无法采用常规的调用函数的方法给出实参。实参是在定义对象时给出的。定义对象的一般格式为:类名对象名(实参1,实参2,…);11例9.2有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2

8、)10,14,20。求它们的体积。编一个基于对象的程序,在类中用带参数的构造函数。方法:带参数的构造函数中的形参,其对应的实参在定义对象时给定。用这种方法可以方便地实现对不同的对

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

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

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