C++ 笔试题易错点总结(2)类的自动转换与强制类型转换

1、单参数的构造函数:单参数的构造函数可以将构造函数的参数类型的变量直接复制给该类对象。

    如有构造函数 A::A(int m){...}; 则可以使用 A a = 1 进行初始化。原理是将用 1 创建一个临时对象,在进行赋值。

    对于 A a; a = 3; 这两条语句调用两次构造函数(一次默认,一次单参数构造函数)一次析构函数(赋值语句会创建一个临时对象)

2、对于 A a = 1.1 依然成立,1.1先被强制转换成 int ,在被转换成 A类对象。

3、对于 fun( A a, int m), 可以使用 fun(1.2, 2)调用,其中1.2 先被转换成int 型, 再被转成A类对象。

4、对于 A fun(){ return 1 } 合法,1会被转换成 A类型。

5、若将  A a; int m = a; 需要用到转换函数,转换函数必须是类方法,不能指定返回类型,不能有参数

    如: operator double();没有指定类型。过多的转换函数将导致二义性问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值