Transparancy 4(C++)北大青鸟

上传人:沈*** 文档编号:243868633 上传时间:2024-10-01 格式:PPT 页数:20 大小:233KB
返回 下载 相关 举报
Transparancy 4(C++)北大青鸟_第1页
第1页 / 共20页
Transparancy 4(C++)北大青鸟_第2页
第2页 / 共20页
Transparancy 4(C++)北大青鸟_第3页
第3页 / 共20页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,第一级,第二级,*,特殊的函数,第四章,回顾,类,成员变量,成员函数,this,指针,对象数组,2,目标,复制构造函数,复制赋值操作符,类型转换构造函数,类型转换函数,3,复制构造函数,3-1,在下列情况,会调用复制构造函数,将某个对象初始化为类的另一个对象时,将对象当作参数传递给函数时,函数返回对象时,4,复制构造函数,3-2,如果没有定义复制构造函数,编译器将自动生成一个,自动生成的复制构造函数只是将对象内容逐个字节地,copy,当数据成员有指针时,将导致两个对象的指针指向同一个地址,5,复制构造函数,3-3,定义,以对象的引用作为参数的构造函数,X:X(,X &,ptr,),或,X:X(,const,X &,ptr,),使用,const,关键字,可以确保复制过程不会意外地更改源对象,6,赋值操作符,4-1,默认的赋值操作符只是逐个字节地将源对象复制到目标对象,#include ,class Var1,int *,ptr,;,public:,Var1(),ptr,= new int;,*,ptr,= 0;,Var1(int i),ptr,= new int;,*,ptr,= i;,void show (),cout, *,ptr,endl,;,;,void main(),Var1 s1(20);,Var1 s2;,s2.show();,s2 = s1;,s2.show();,s2,的,ptr,和,s1,的,ptr,指到同一个位置,7,赋值操作符,4-2,演示,默认的赋值操作符,8,赋值操作符,4-3,增加:,Var1 & operator = (const Var1 & s),*,ptr,= *(,s.ptr,);,return *this;,两个对象的,ptr,指向不同的位置,9,赋值操作符,4-4,演示自定义赋值操作符,10,类型转换构造函数,4-1,基本数据类型 用户自定义类型,Distance(,float,m,),float f;,f = (float)3.28 * m;,feet =,int(f,);,inches = 12 * (f - feet);,Distance d1 = 1.25;,11,类型转换构造函数,4-2,演示,基本数据类型,到用户自定义类型的转换,12,类型转换构造函数,4-3,用户自定义类型 用户自定义类型,LFeet:LFeet,(,LMetres,dm,) ,float,ffeet,;,ffeet,= float(3.28 *,dm.GetMetres,(),);,feet =,int(ffeet,);,inches = int(12 * (,ffeet,- feet);,int,LMetres:GetMetres,() ,return metre;,13,类型转换构造函数,4-4,演示,用户自定义类型的互转,14,类型转换函数,编译器对用户自定义的类型一无所知,必须定义转换函数,基本数据类型 用户自定义类型,类型转换函数,用户自定义类型 用户自定义类型,15,从用户自定义类型到基本类型,operator float(),/,转换函数是类型转换操作符的重载,float f;,f = inches / 12;,f = feet + f;,return (,float)(f,/ 3.28);,Distance d1(4, 1.2f);,Distance d2(6, 6.72f);,float m = float(d1) ;,/,显式调用转换函数,m = d2;,/,隐式调用转换函数,16,不同类的对象的转换,编译器对用户自定义的类型一无所知,必须指定转换函数,objectA,=,objectB,;,两种实现方法,在目标类中定义的类型转换构造函数(已介绍),在源类中定义的转换函数,目标类的对象,源类的对象,17,源类中的转换函数,operator,DistFeet,(),float,f_feet,;,float inches;,int,i_feet,;,f_feet,= (float)3.28 * meters ;,i_feet,= int (,f_feet,);,inches = 12 * (,f_feet,-,i_feet,);,return (,DistFeet(i_feet, inches);,DistMeters,dm1 = 1.0;,DistFeet,df1;,df1 = dm1;,/,隐式使用转换函数,或,df1 =,DistFeet,(dm1);,/,显式使用转换函数,18,类型转换表,转换类型,目标类中的函数,源类中的函数,从基本类型到类,构造函数,不可以,从类到基本类型,不可以,转换函数,从类到类,构造函数,转换函数,19,总结,复制构造函数,复制赋值操作符,类型转换构造函数,类型转换函数,20,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!