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


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

    封装

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

    继承与This指针

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

    虚函数与多态

    • “基类的指针”要调用“派生类的成员函数“,virtual 虚函数 来实现
    • 当所有派生类有同一特征(成员函数),可以通过虚函数,然后“基类指针”可通过循环调用所有
      • 比如“基类:动物”,“派生类:小狗,小猫,小鸡,小鸭”,派生类都有特性(函数)“鸣叫”
      • “鸣叫”的操作叫做,“一般化”操作。你可以利用虚函数,规划出一些一般化操作
    • 当你期望给派生类添加新的成员函数时,在基类中加入该函数的纯虚函数:Virtual void dispaly() = 0;
    • 以单一指令调用不同函数,这种性质叫做“多态”。
    • 拥有纯虚函数的类叫做抽象类,不能产生对象实例,但可以有指针,用来操作派生类 
  • 相关阅读:
    View载入具体解释
    七、备忘录模式Memento(行为型模式)
    排序算法之直接插入排序
    IOS
    Matlab得到二值图像中最大连通区域
    MVC模式利用xib文件定制collectionCell
    五大算法思想—贪心算法
    jQuery鼠标悬停显示提示信息窗体
    J2EE基础总结(5)——EJB
    iOS 打开扬声器以及插入耳机的操作
  • 原文地址:https://www.cnblogs.com/Lan-ZC0803/p/9483430.html
Copyright © 2020-2023  润新知