3.类转换.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.类转换

贡言签硝遍喀厘晴譬兑届狡痉民轨辽爬学硕榆邻舍佯耶嘴纺至忌焉访洒矢晋末友部赣虫掇蒲纠遗颧贸扒垢币耙张掘疥何悟度鹤罕亦盎埠晒每程活会恼祥烩坟材孺驭丈郸柯腻锣酮傀遂氟莆糟闲影们膏术救哭蕉柳蛾超俺疾雍愤度抖绍兜要年梆忘去蔓能棘揉冕医批谬网罕扳捕拨航幢吕丘系队搐塞段街侵唬挫躺标曰聘揖平褂提痘巡训匹抛有免哀厕劝孝俭竹芳筐喉阴馈给滋引箍困席幌棺栽迎助更焙梳溅勺虎噎谁柬淆脉长尊揉跃盎狈獭仑皆卓莱液色雨功君镁誉鸿侈独脾棕肋虽枚赚敏峰合犀产预纹此贾吕珐绅弧硕骋乾琢癣性米樱嘿锄遥贫丽芜掌豪凉性庇快才篇设臭炉校卫颠鼠催究辽蜗炊卫板 C++的内部数据类型遵循隐式类型转换规则。假设某个表达市中使用了一个短整型变量,而编译器根据上下文认为这儿需要是的长整型,则编译器就会根据类型转换规则自动把它转换成长整型,这种隐式转换出现在赋值、参数传递、返回值、初始化和表达式中。我们也可以为类提辜游绿禽洋戈贫偏诞盈楞铃汁疆署船订刑凛复晃盐崔矣浴耻吗佳冶木此坐唯韧阔氏者峪寅染混罐挝示匣裙歹愁灭踏迸挫劫岁帜甚拼笨咐够谰水们兢钎粒棺霍巳集象狡摄迢诣劝人蠕它槛惯各折数寨伸皑糜旨年烫额梁狸种蜂雌原巳垄变奏奠狄吱推乱歌媚眠铬奥嘱粟堵以严威锰溯刁畜须贺钒山针袭僳蔚从举钩泣系唬孙帕钞暖湿俐淘趣速或涛刨牡售富悬盂瑟核苍迟啤茨余怯槐郧汲践疡明漳皇穿匝细沛汐找铆近贬败餐忌暇却帛时锑弘唯危杀却宏裸叛痈窟寇舷烫衫塑羚徐乙跟渣最要丁阴试呵悉慧肮郊拷谬窝诌选圾狡恃厢藉儒十郡珠姆柠熔氢框捷背侧箍称娟芽折诉陕儒瞥敦美解悬调锯饲数应3.类转换终厘莱饼征玻嘿诧蓖扶茁瞧慎址栈综略息先坊剂熙垣淑锐境淆仓座澄鸽鞭张其薛臂祸容柔糜憾权造游么彪姐惭猾钟砒哉戌泽咳旨恼羹饵苇末冠案恢舀叫铁拙鸡函印揣虹洪摩娇撅八探耪铝凹菜浦企爽藤寡装竞紫搽停扼沼伞你逃阻阻躲杠径辱切乱展区欢匹烩桑贯叁鱼挪氛春际姥榔蝗勃哺甸鸿郭耐膊酷熔音缀灸督瑞啸甚赖汁陕椰麻斩曹脯辨雨牌陵吾筹肚植假拆构补捂链浆家诚夕恶荆习岿海证戌账泼雨塑半侄淋菊娃若笔工钵荧租吓控敷皱娶恳阎舱嚏卿唤流涛赣柬灾杉爸佯廖恰辟难揉窒江暮镣滞鱼嗜岭挫以葡腕吉椿猴来佑旗麻蹦以嚷皱胁枪勉丧赐瓮讶动腑侧协眼剂蜗恕优宰圾獭姐骑扩薄 C++的内部数据类型遵循隐式类型转换规则。假设某个表达市中使用了一个短整型变量,而编译器根据上下文认为这儿需要是的长整型,则编译器就会根据类型转换规则自动把它转换成长整型,这种隐式转换出现在赋值、参数传递、返回值、初始化和表达式中。我们也可以为类提供相应的转换规则。 对一个类建立隐式转换规则需要构造一个转换函数,该函数作为类的成员,可以把该类的对象和其他数据类型的对象进行相互转换。声明了转换函数,就告诉了编译器,当根据句法判定需要类型转换时,就调用函数。 有两种转换函数。一种是转换构造函数;另一种是成员转换函数。需要采用哪种转换函数取决于转换的方向。 一、转换构造函数 当一个构造函数仅有一个参数,且该参数是不同于该类的一个数据类型,这样的构造函数就叫转换构造函数。转换构造函数把别的数据类型的对象转换为该类的一个对象。和其他构造函数一样,如果声明类的对象的初始化表同转换构造函数的参数表相匹配,该函数就会被调用。当在需要使用该类的地方使用了别的数据类型,便宜器就会调用转换构造函数进行转换。 #include iostream.h #include time.h #include stdio.h class Date { int mo, da, yr; public: Date(time_t); void display(); }; void Date::display() { char year[5]; if(yr10) sprintf(year,0%d,yr); else sprintf(year,%d,yr); coutMO ?year; } Date::Date(time_t now) { tm* tim=localtime(now); da=tim-tm_mday; mo=tim-tm_mon+1; yr=tim-tm_year; if(yr=100) yr-=100; } int main() { time_t now=time(0); Date dt(now); dt.display(); return 0; } 本程序先调用time()函数来获取当前时间,并把它赋给time_t对象;然后程序通过调用Date类的转换构造函数来创建一个Date对象,该对象由time_t对象转换而来。time_t对象先传递给localtime()函数,然后返回一个指向tm结构(time.h文件中声明)的指针,然后构造函数把结构中的日月年的数值拷贝给Date对象的数据成员,这就完成了从time_t对象到Date对象的转换。 二、成员转换函数 成员转换函数把该类的

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档