Transparancy 4(C++)北大青鸟

Transparancy 4(C++)北大青鸟

ID:44264261

大小:233.00 KB

页数:20页

时间:2019-10-20

Transparancy 4(C++)北大青鸟_第1页
Transparancy 4(C++)北大青鸟_第2页
Transparancy 4(C++)北大青鸟_第3页
Transparancy 4(C++)北大青鸟_第4页
Transparancy 4(C++)北大青鸟_第5页
资源描述:

《Transparancy 4(C++)北大青鸟》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、特殊的函数第四章回顾类成员变量成员函数this指针对象数组2目标复制构造函数复制赋值操作符类型转换构造函数类型转换函数3复制构造函数3-1在下列情况,会调用复制构造函数将某个对象初始化为类的另一个对象时将对象当作参数传递给函数时函数返回对象时4复制构造函数3-2如果没有定义复制构造函数,编译器将自动生成一个自动生成的复制构造函数只是将对象内容逐个字节地copy当数据成员有指针时,将导致两个对象的指针指向同一个地址5复制构造函数3-3定义以对象的引用作为参数的构造函数X::X(X&ptr)或X::X(con

2、stX&ptr)使用const关键字,可以确保复制过程不会意外地更改源对象6赋值操作符4-1默认的赋值操作符只是逐个字节地将源对象复制到目标对象#includeclassVar1{int*ptr;public:Var1(){ptr=newint;*ptr=0;}Var1(inti){ptr=newint;*ptr=i;}voidshow(){cout<<*ptr<

3、w();}s2的ptr和s1的ptr指到同一个位置7赋值操作符4-2演示默认的赋值操作符8赋值操作符4-3增加:Var1&operator=(constVar1&s){*ptr=*(s.ptr);return*this;}两个对象的ptr指向不同的位置9赋值操作符4-4演示自定义赋值操作符10类型转换构造函数4-1基本数据类型用户自定义类型Distance(floatm){floatf;f=(float)3.28*m;feet=int(f);inches=12*(f-feet);}Distanced1=1

4、.25;11类型转换构造函数4-2演示基本数据类型到用户自定义类型的转换12类型转换构造函数4-3用户自定义类型用户自定义类型LFeet::LFeet(LMetresdm){floatffeet;ffeet=float(3.28*dm.GetMetres());feet=int(ffeet);inches=int(12*(ffeet-feet));}intLMetres::GetMetres(){returnmetre;}13类型转换构造函数4-4演示用户自定义类型的互转14类型转换函数编译器对用户自定义

5、的类型一无所知,必须定义转换函数基本数据类型用户自定义类型类型转换函数用户自定义类型用户自定义类型15从用户自定义类型到基本类型operatorfloat()//转换函数是类型转换操作符的重载{floatf;f=inches/12;f=feet+f;return(float)(f/3.28);}Distanced1(4,1.2f);Distanced2(6,6.72f);floatm=float(d1);//显式调用转换函数m=d2;//隐式调用转换函数16不同类的对象的转换编译器对用户自定义的类型一无所

6、知,必须指定转换函数objectA=objectB;两种实现方法在目标类中定义的类型转换构造函数(已介绍)在源类中定义的转换函数目标类的对象源类的对象17源类中的转换函数operatorDistFeet(){floatf_feet;floatinches;inti_feet;f_feet=(float)3.28*meters;i_feet=int(f_feet);inches=12*(f_feet-i_feet);return(DistFeet(i_feet,inches));}DistMetersdm1

7、=1.0;DistFeetdf1;df1=dm1;//隐式使用转换函数或df1=DistFeet(dm1);//显式使用转换函数18类型转换表转换类型目标类中的函数源类中的函数从基本类型到类构造函数不可以从类到基本类型不可以转换函数从类到类构造函数转换函数19总结复制构造函数复制赋值操作符类型转换构造函数类型转换函数20

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

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

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