zoukankan      html  css  js  c++  java
  • C++ 封装,继承,多态总结

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

    封装

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

    继承与This指针

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

    虚函数与多态

    • “基类的指针”要调用“派生类的成员函数“,virtual 虚函数 来实现
    • 当所有派生类有同一特征(成员函数),可以通过虚函数,然后“基类指针”可通过循环调用所有
      • 比如“基类:动物”,“派生类:小狗,小猫,小鸡,小鸭”,派生类都有特性(函数)“鸣叫”
      • “鸣叫”的操作叫做,“一般化”操作。你可以利用虚函数,规划出一些一般化操作
    • 当你期望给派生类添加新的成员函数时,在基类中加入该函数的纯虚函数:Virtual void dispaly() = 0;
    • 以单一指令调用不同函数,这种性质叫做“多态”。
    • 拥有纯虚函数的类叫做抽象类,不能产生对象实例,但可以有指针,用来操作派生类 
  • 相关阅读:
    小刘同学的第一百五十二篇日记
    小刘同学的第一百五十一篇日记
    小刘同学的第一百五十篇日记
    小刘同学的第一百五十篇日记
    小刘同学的第一百四十九篇日记
    小刘同学的第一百四十八篇日记
    小刘同学的第一百四十七篇日记
    小刘同学的第一百四十六篇日记
    小刘同学的第一百四十五篇博文
    自定义CollectionViewLayout
  • 原文地址:https://www.cnblogs.com/Lan-ZC0803/p/9483430.html
Copyright © 2011-2022 走看看