欢迎来到天天文库
浏览记录
ID:59448052
大小:576.50 KB
页数:84页
时间:2020-09-18
《C++面向对象程序设计(第三章)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++程序设计第三章中国石油大学计算机系2011.4第3章关于类和对象的进一步讨论3.1构造函数3.2析构函数3.3调用构造函数和析构函数的顺序3.4对象数组3.5对象指针3.6共用数据的保护(难点)3.7对象的动态建立和释放3.8对象的赋值和复制3.9静态成员3.10友元3.11类模板3.1构造函数3.1.1对象的初始化3.1.2构造函数的作用3.1.3带参数的构造函数3.1.4用参数初始化表初始化数据成员3.1.5构造函数的重载3.1.6使用默认参数的构造函数确定对象的初始状态3.1.2构造函数的作用构造
2、函数的作用:用于为对象分配空间和进行初始化。构造函数的特点:(1)构造函数的名字与它的类名必须相同;(2)它没有类型,不返回值,为public类型;(3)它可以带参数,也可以不带参数;(4)不需要写调用语句,在系统建立对象时由系统自觉调用执行。(5)如果用户没有定义构造函数,C++系统会自动生成一个空的构造函数。(6)允许为内联、重载、带缺省形参的函数。#includeusingnamespacestd;classTime{public:Time(){hour=0;minute=0;sec
3、=0;}voidset_time();voidshow_time();private:inthour;intminute;intsec;};例3.1在例2.3的基础上定义构造成员函数构造函数intmain(){Timet1;//定义对象的同时调用了构造函数t1.set_time();t1.show_time();Timet2;//定义对象的同时调用了构造函数t2.show_time();return0;}voidTime::set_time(){cin>>hour;cin>>minute;cin>>sec;}
4、voidTime::show_time(){cout<5、输出t2的数据成员的初值。10255410:25:54//输出t1的值0:0:0//输出t2的值也可以在类内声明构造函数,然后在类外定义构造函数。将程序修改为:Time();然后在类外定义构造函数:Time::Time(){hour=0;minute=0;sec=0;}//不带参数的构造函数程序运行的情况为:3.1.3带形参数的构造函数优点:实现不同对象的初始化。一般格式:构造函数名(类型形参1,类型形参2,…)定义对象的格式:类名对象名(实参1,实参2,…);例3.2有两个长方柱,其长、宽、高分别为:(1)6、12,25,30(2)15,30,21编写程序,在类中用带参数的构造函数,计算它们的体积。分析:可以在类中定义一个计算长方体体积的成员函数计算对象的体积。#includeusingnamespacestd;classBox{public:Box(int,int,int);//带形参的构造函数intvolume();private:intheight;intwidth;intlength;};Box::Box(inth,intw,intlen)//长方体构造函数{height=h;width7、=w;length=len;}intBox::volume()//计算长方体的体积{return(height*width*length);}例3.2当类中无构造函数时,编译系统自动生成一个缺省构造函数,但它不会给类的数据成员初始值。intmain(){Boxbox1(12,25,30);//定义对象box1cout<<"box1体积="<8、return0;}例3.2构造函数Box有3个参数,分别代表长、宽、高。在主函数中定义对象box1时,指定了实参12,25,30。然后调用成员函数计算长方体的体积。程序运行的结果如下:box1体积=9000box2体积=9450提醒:(1)带形参的构造函数在定义对象时必须指定实参(2)用这种方法可以实现不同对象的初始化。说明3.1.4用参数初始化表对数据成员初始化构造函数的另一种数据初始化写法:利用
5、输出t2的数据成员的初值。10255410:25:54//输出t1的值0:0:0//输出t2的值也可以在类内声明构造函数,然后在类外定义构造函数。将程序修改为:Time();然后在类外定义构造函数:Time::Time(){hour=0;minute=0;sec=0;}//不带参数的构造函数程序运行的情况为:3.1.3带形参数的构造函数优点:实现不同对象的初始化。一般格式:构造函数名(类型形参1,类型形参2,…)定义对象的格式:类名对象名(实参1,实参2,…);例3.2有两个长方柱,其长、宽、高分别为:(1)
6、12,25,30(2)15,30,21编写程序,在类中用带参数的构造函数,计算它们的体积。分析:可以在类中定义一个计算长方体体积的成员函数计算对象的体积。#includeusingnamespacestd;classBox{public:Box(int,int,int);//带形参的构造函数intvolume();private:intheight;intwidth;intlength;};Box::Box(inth,intw,intlen)//长方体构造函数{height=h;width
7、=w;length=len;}intBox::volume()//计算长方体的体积{return(height*width*length);}例3.2当类中无构造函数时,编译系统自动生成一个缺省构造函数,但它不会给类的数据成员初始值。intmain(){Boxbox1(12,25,30);//定义对象box1cout<<"box1体积="<8、return0;}例3.2构造函数Box有3个参数,分别代表长、宽、高。在主函数中定义对象box1时,指定了实参12,25,30。然后调用成员函数计算长方体的体积。程序运行的结果如下:box1体积=9000box2体积=9450提醒:(1)带形参的构造函数在定义对象时必须指定实参(2)用这种方法可以实现不同对象的初始化。说明3.1.4用参数初始化表对数据成员初始化构造函数的另一种数据初始化写法:利用
8、return0;}例3.2构造函数Box有3个参数,分别代表长、宽、高。在主函数中定义对象box1时,指定了实参12,25,30。然后调用成员函数计算长方体的体积。程序运行的结果如下:box1体积=9000box2体积=9450提醒:(1)带形参的构造函数在定义对象时必须指定实参(2)用这种方法可以实现不同对象的初始化。说明3.1.4用参数初始化表对数据成员初始化构造函数的另一种数据初始化写法:利用
此文档下载收益归作者所有