《C++ Primer》 回顾记录

第六章 函数

关于内联函数inline和constexpr
内联函数的作用是可以避免函数重复调用时候的开销,通常应用于规模比较小但使用频率比较高的一些函数上,只需要在返回类型前面加入关键字inline即可。可以使得函数能够“内联地”展开。
对于constexpr关键字,可以声明为常量表达式类型。可以用在变量上,也可以用在函数上,并检查输入正不正确,如果不符合要求,编译器就会报错。对于常量表达式函数,要求形参得是字面值类型,而且得有return语句。返回类型也有要求。字面值类型就是比较简单的容易判断的类型,像类的类型,string类型,io库这些就不是字面值类型,指针和引用就算是字面值类型。常量表达式函数和内联函数有点联系,即常量表达式函数被隐式地指定为内联函数,来方便展开。如果它的实参是常量表达式,那么返回类型也是常量表达式。
而且允许内联函数和constexpr函数多次定义,但是必须内容要一致,因此,一般会把二者放在头文件中定义。

第七章 类

关于构造函数中的隐式类型转换,这种转换只会发生在构造函数接受一个参数的情况,当接受多余一个参数时就不会发生隐式类型转换了。比如,我们的构造函数介绍一个const string的参数,来构造一个类的对象,那么我们在调用直接调用这个类的成员函数,函数需要的是类的对象,但传给他的是一个string 参数,那么这个时候就会执行隐式类型转换,变成类的对象,才能进行后续成员函数的操作。当然,需要注意,隐式转换只能发生一次,即不能直接把“a hahah”这种给形参,这样需要先把这个“a hahah”转换为const string类型,在变成类的对象,这是不允许的。
那么如何避免隐式类型转换呢,那么就需要explicit关键字了。它能够阻止可能发生的隐式类型转换,加入这个关键字之后,前面的操作就不能通过了。当然,如果你想继续使用类型转换,就得用显示类型转换了,
static_cast<这个类的名字>(balabala)这样就可以了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值