Efficient C++ 阅读笔记

本文探讨了C++中引用与指针的区别、类型转换、多态等关键概念,并提供了实用建议来避免常见编程错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Efficient C++ 阅读笔记

技术要点:

  • reference 永远没有成为NULL的机会 如果出现 那么请隔离那个写出这种代码的程序员
  • 在写程序的时候为了系统的健壮性能,一定要测试 指针的可用性能 但是 reference 就可以不用测试.

    {不指向任何对象: pointer
    不同时间指向不同对象:pointer
    总是会代表某个对象,永远不变心:reference }

  • static_cast() 拥有着和传统一样的表现形式
  • const_cast 最常用的用途将某一个对象的常量性去除掉
  • dynamic_cast 协助你巡航于继承体系之中
  • reinterpret_cast 最常用的用途是转换"函数指针" 例如:有一个函数指针返回的是 void 想强制转换 一个函数指针返回 int

    funcPtrArray[0] = reinterpret_cast(&doSomething);
    不具有移植性

  • 多态的具体实现方式:父类的指针指向子类
  • 不要用多态方式处理数组 因为子类的数组移动的大小和父类完全不一样
  • 具体类不要继承自另一个具体类 不太能够上面的犯错
  • 对定制的类型转换保持警觉,因为这样容易导致错误

    解决方案之一 : 对double的重载转换为另一个函数取代类型转换操作符,asDouble 写一个这个函数

  • explicit 解决隐士转换

    之二: 代理技术 例如 先把一个int 转换为一个类 然后这个类就不可以隐式转换为另一个类

  • 前置效率更高,因为没有创建临时变量,似乎后置的代码是以前置代码为基础的这样效率就差不多了
  • 不要重载 && 和 || 因为无法保证"骤死式" 最好也不要重载 ,号操作符号

转载于:https://www.cnblogs.com/eat-too-much/p/7053742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值