C++ 封装,继承,多态总结

在学习API,MFC时,看到了C++的重要性质。之前了解过封装,继承,多态,今天看完《深入浅出MFC》一书中的论述,对这三个概念有了更深的认识。为了防止自己忘记,写下这篇总结。

封装

  • 面向对象,即“一切皆对象”。
  • 把对象的属性描述出来,即对象的属性,“类”。
  • 对象的属性有两大成员:属性(property)和方法(method);也可以称为成员变量(member variable)和成员函数(member function);
  • 成员变量一般声明为private,成员函数一般声明为public。

继承与This指针

  • 派生类继承基类,“暗自”拥有了基类的成员函数与成员变量(默认Public继承)
  • 当以“基类的指针”指向“派生类的对象”时,经过这个指针,你只能调用由基类(不是派生类)定义的函数
  • 不能用“派生类的指针”指向一个“基类对象”
  • 当基类和派生类都定义了“相同名称的成员函数”,那么通过指针调用成员函数时,调用那个函数由指针的原始类型决定

虚函数与多态

  • “基类的指针”要调用“派生类的成员函数“,virtual 虚函数 来实现
  • 当所有派生类有同一特征(成员函数),可以通过虚函数,然后“基类指针”可通过循环调用所有
    • 比如“基类:动物”,“派生类:小狗,小猫,小鸡,小鸭”,派生类都有特性(函数)“鸣叫”
    • “鸣叫”的操作叫做,“一般化”操作。你可以利用虚函数,规划出一些一般化操作
  • 当你期望给派生类添加新的成员函数时,在基类中加入该函数的纯虚函数:Virtual void dispaly() = 0;
  • 以单一指令调用不同函数,这种性质叫做“多态”。
  • 拥有纯虚函数的类叫做抽象类,不能产生对象实例,但可以有指针,用来操作派生类 
原文地址:https://www.cnblogs.com/Lan-ZC0803/p/9483430.html