面向对象

面向对象的三特征和五原则

  • 三个基本特征:封装(与封装相关的关键字:private)、继承(与继承相关的关键字:interface)、多态(与多态相关的关键字:virtual)
  • 五种设计原则:单一职责原则、开放封闭原则、Liskov(里氏代换)原则、依赖倒置原则、接口隔离原则、良性依赖原则

封装可以隐藏实现细节,使得代码模块化

继承可以扩展已存在的代码模块

封装和继承的目的都是为了实现代码重用

多态的目的是为了实现接口重用

具体的解释可以参照博客:http://blog.csdn.net/cancan8538/article/details/8057095

博主写的很详细~

MFC类库将CObject的析构函数设为virtual的原因:

  • 析构函数调用顺序与构造函数相反
  • 但由于多态的存在,如果有如下代码,则指针p撤销时,被调用的是CBase的析构函数,导致CChild占据的内存不会释放,造成内存泄漏
CBase *p;
CChild c;
p = &c;
  • 如果将CObject类的析构函数设为virtual,则其派生类的析构函数均为virtual型,从而解决了在某些情况下出现的内存泄漏问题

重载只是一种语言特性,与多态无关,与面向对象也无关


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值