拷贝构造函数对象数组动态创建删除ppt课件.ppt

拷贝构造函数对象数组动态创建删除ppt课件.ppt

ID:59269751

大小:82.50 KB

页数:32页

时间:2020-09-22

拷贝构造函数对象数组动态创建删除ppt课件.ppt_第1页
拷贝构造函数对象数组动态创建删除ppt课件.ppt_第2页
拷贝构造函数对象数组动态创建删除ppt课件.ppt_第3页
拷贝构造函数对象数组动态创建删除ppt课件.ppt_第4页
拷贝构造函数对象数组动态创建删除ppt课件.ppt_第5页
资源描述:

《拷贝构造函数对象数组动态创建删除ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、对象之间的赋值也是通过赋值运算符“=”进行的。其功能是将一个对象的成员值一一复制给另一对象的对应成员。3.8对象的赋值和复制 3.8.1对象的赋值格式为:对象名1=对象名2;注意:对象名1和对象名2必须属于同一个类。例如Studentstud1,stud2;//定义两个同类的对象┆stud2=stud1;//将stud1赋给stud2说明:(1)对象的赋值只对其中的数据成员赋值,而不对成员函数赋值。(2)类的数据成员中不能包括动态分配的数据,否则在赋值时可能出现严重后果。用一个已有的对象复制出一个完全相同的新对象。如:Boxbox2(box1);作用:用已有的对象box1克隆

2、出一个新对象box2。一般形式为:类名对象2(对象1);用对象1复制出对象2。3.8.2对象的复制(复制构造函数或拷贝构造函数)注意:对象的复制和对象的赋值的区别。对象的赋值是对一个已经存在的对象赋值,因此必须先定义被赋值的对象,才能进行赋值。对象的复制则是从无到有地建立一个新对象,并使它与一个已有的对象完全相同(包括对象的结构和成员的值)。对象复制时,将调用一个特殊的构造函数——复制构造函数。class类名{public:类名(形参);//构造函数类名(类名&对象名);//复制构造函数……};类名::类名(类名&对象名)//复制构造函数的实现{函数体}//复制构造函数定义B

3、ox::Box(Box&b){height=b.height;width=b.width;length=b.length;}普通构造函数和复制构造函数的区别:1、形式上的区别:类名(形式参数);//普通构造函数声明,如Box(int,int,int);类名(类名&对象名);//复制构造函数,如Box(Box&b);2、建立对象时,系统会根据实参的类型决定调用普通构造函数或复制构造函数:Boxbox1(12,15,16);//调用普通构造函数Boxbox2(box1);//调用复制构造函数以下3种情况,会调用复制构造函数:(1)、当用类的一个对象去初始化该类的另一个对象时,系统

4、自动调用复制构造函数。intmain(){Boxbox1(10,10,10);Boxbox2(box1);//复制构造函数被调用Boxbox3=box1;//复制构造函数被调用return0;}(2)、当函数参数为类对象时。在调用函数时将实参对象完整地传递给形参,即按实参复制一个形参,系统自动调用复制构造函数。voidfunc(Boxbox2){cout<

5、用处时。此时需要将函数中的对象复制一个临时对象并传给该函数的调用处。Boxf()//函数f的类型为Box类类型{Boxbox1(12,15,18);returnbox1;//返回值是Box类的对象}intmain(){Boxbox2;//定义Box类的对象box2box2=&box1;}注意:如果程序员没有为类声明复制构造函数,则编译器自动生成一个复制构造函数。该复制构造函数功能:将作为初始值的对象每个数据成员的值,初始化将要建立的对象的对应数据成员。例:一个班有50个学生,每个学生的属性包括学号、年龄、成绩等。可定义一个“学生类”对象数组,每一个数组元素是一个“学生类”对象

6、。例如:Studentstud[50];//假设已声明了Student类,定义stud数组,有50个元素3.4对象数组如果建立50个元素的数组,则需要调用50次构造函数。对象数组的初始化:1、如果构造函数只有一个参数,在定义数组时可以直接在等号后面的花括号内提供实参。如Studentstud[3]={101,102,103};//合法,3个实参分别传递给3个数组元素的构造函数2、如果构造函数有多个参数,在定义对象数组时,必须在花括号中分别写出构造函数并指定实参。例如:构造函数有3个参数,分别代表学号、年龄、成绩。按以下方式定义并初始化对象数组:StudentStud[3]={

7、//定义对象数组Student(1001,18,87),//调用第1个元素的构造函数Student(1002,19,76),//调用第2个元素的构造函数Student(1003,18,72)//调用第3个元素的构造函数};在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。3.5对象指针 3.5.1指向对象的指针定义指向类对象的指针变量的一般形式为:类名*对象指针名;this指针是隐式使用的。return(he

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

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

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