C++ 编程规范101读书笔记(5)类的设计与继承

这部分主要讨论面向对象的设计的一些陷阱:主要涉及构造函数,析构函数,继承,组合,成员可见度


第32条  弄清所要编写的是哪种类


第33条 用小类代替巨类


第34条 用组合代替继承

   在不影响调用代码的情况下具有更大的灵活性

   更好的编译时隔离,更短的编译时间

   例外情况:

   (1)如果需要改写虚拟函数

   (2)如果需要访问保护成员

   (3)如果需要在基类之前构建已使用过的对象,或者在基类之后销毁此对象

   (4)如果需要操心虚拟基类

   (5)如果能确定空基类优化哪呢给带来好处,包括这种情况下优化的确很重要,以及这种情况下目标编译器确实能实施这种优化

   (6)如果需要控制多态


第35条 避免从非要设计成基类的类上继承

     策略:(1)用组合代替共用集成或者私有继承

                 (2)std::unary_fucntion


第36条  优先提供抽象接口

      遵循依赖倒置原理


第37条 共用继承即可替换性,继承,不是为了重用,而是为了被重用

       Liskov替换原则

      例外情况: 策略类和混入类(mixins)通过共用继承添加行为,但这并不是误用共用继承来建模


第38条 实施安全的改写


第39条 考虑将虚拟函数声明为非公用的,将共用函数声明为虚拟的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值