(8)--3.5对象的赋值和复制.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

对象的赋值定义:如果对一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值对象的值是指对象中所有数据成员的值对象赋值的一般形式:对象名1=对象名2; 例如: Studentstud1,stud2; stud2=stud1;

程序实例—长方体对象之间的赋值#includeiostreamusingnamespacestd;classBox{public: //声明有默认参数的构造函数 Box(int=10,int=10,int=10); intvolume();private: intheight; intwidth; intlength;};Box::Box(inth,intw,intlen){ height=h; width=w; length=len;}intBox::volume(){ return(height*width*length);//返回体积}intmain(){ Boxbox1(15,30,25),box2;//定义两个对象box1和box2 cout″Thevolumeofbox1is″box1.volume()endl; box2=box1; //将box1的值赋给box2 cout″Thevolumeofbox2is″box2.volume()endl; return0;}

程序实例—立方体对象之间的赋值运行结果如下:Thevolumeofbox1is11250Thevolumeofbox2is11250说明:对象的赋值只对其中的数据成员赋值,而不对成员函数赋值;类的数据成员中不能包括动态分配的数据,否则在赋值时可能出现严重后果。

对象的复制定义:用一个已有的对象快速地复制出完全相同的对象;一般形式:类名对象2(对象1);例如: Boxbox1(15,30,25); //定义box1 Boxbox2(box1); //复制对象

对象的复制复制对象时调用复制构造函数:若未定义复制构造函数,则自动提供默认的复制构造函数,实现数据成员的简单复制。//复制构造函数.Box::Box(constBoxb){ height=b.height; width=b.width; length=b.length;}Boxbox2(box1); //调用复制构造函数

对象的复制使用赋值号实现对象的复制。一般形式为: 类名对象名1=对象名2;例如:Boxbox2=box1;同一语句实现多个对象的复制(更直观)Boxbox2=box1,box3=box2; 类似于:inta=4,b=a;

对象的复制赋值与复制的区别:赋值是对一个已存在的对象赋值 box2=box1; 复制是从无到有建立一个新对象 Boxbox2=box1;

对象的复制思考:发生对象复制的情形有哪些?三种情形:对象之间直接进行复制函数的参数为类的对象,需要从实参到形参进行对象复制 voidfun(Boxb) //形参是类的对象{}intmain(){Boxbox1(12,15,18);fun(box1); //实参是类的对象,调用函数时将复制一个新对象breturn0;}

对象的复制思考:发生对象复制的情形有哪些?三种情形:函数的返回值是类的对象 Boxf() //函数f的类型为Box类类型{Boxbox1(12,15,18);returnbox1; //返回值是Box类的对象}intmain(){Boxbox2; //定义Box类的对象box2box2=f(); //调用f函数,返回Box类的临时对象,并将它赋值给box2return0;}

小结对象的赋值1对象的复制2

文档评论(0)

177****2883 + 关注
实名认证
内容提供者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档