面向对象

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

  • 三个基本特征:封装(与封装相关的关键字: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型,从而解决了在某些情况下出现的内存泄漏问题

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


你可能感兴趣的:(面向对象,C++)