yutou's blog

请不要做浮躁的人,请热爱C++。
posts - 14, comments - 1, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

用转换构造函数还是类型转换函数

Posted on 2008-01-14 15:15 yutou 阅读(604) 评论(0)  编辑 收藏 引用 所属分类: Programming
看了书,有的懵。在VS2005中测试了一下。

测试代码
 1//假设已经定义了类Test
 2
 3int main()
 4{
 5    Test T1 , T2(1,2);
 6    double D1 = 0, D2 = 0.1;
 7
 8    //例1
 9    T1 = T2 + D2; 
10    //对于上面的表达式,VS2005是这样处理的:执行语句,发现T1是Test类对象,执行T2 + D2;在这个处理中,VS2005调用Test类中的double类型转换构造函数(假设已经定义此函数),把D2转换成一个临时Test类对象,然后与对象T2相加,之后把值赋予对象T1
11
12    //例2
13    D1 = T2 + D2;
14    //对于上面的表达式,VS2005先判断表达式左边的变量的数据类型,确定D1是double类型数据,然后执行T2 + D2;在这个处理中,VS2005调用Test类中的类型转换函数(假设已经对此函数定义),把对象T2转换成double类型数据,然后和D2相加,最后把值赋予D1
15    return 0;
16}

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理