• 纯虚函数_抽象类


    解耦合 和 模块的划分
    c++没有接口的概念  但可以使用纯虚函数(抽象类)实现接口的功能

    纯虚函数和抽象类
    纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本
    纯虚函数为各派生类提供一个公共界面(接口的封装和设计,软件的模块功能更划分)


    纯虚函数说明形式:
    virtual 类型 函数名(参数表)= 0;


    含有纯虚函数的基类 称为抽象类。

    class shape
    {
        point center;
    public:
        virtual void rotate(int)=0;
        virtual void draw()=0;
        void move(point p)
        {
              center=p;
              draw();
        }
    }    

    类shape包含纯虚函数,就是抽象类

    shape x; //error,抽象类不能建立对象
    shape*p; //ok,可以声明抽象类指针
    shape f(); //error,抽象类不能作为返回类型
    void g(shape); //error,抽象类不能作为参数类型
    shape& h(shape&) //ok,可以声明抽象类的引用

    子类继承 抽象类 并实现其中的 virtual函数后,子类就可以实例化一个对象
    将子类的地址给 抽象类的指针,就可用抽象类(父类)指针调用子类相应的函数(即在抽象类中的虚函数在子类中的实现)

    void objplay(shape* base) //产生多态
    {
        base->draw();
    }
        area c1(1,2);
        square c2(2,3);
        objplay(&c1);
        objplay(&c2);

    多继承可以用,但规范的用法是一个正常父类,其余父类均为抽象类
    几个抽象类中只有可以有相同的纯虚函数,子类需要将不重复的纯虚函数全部实现一遍。
    将子类对象赋值给接口指针实现多态

    #prama once //可以保证头文件只包含一次

    注入  使用框架将任务实现传入框架

    控制反转 回调函数


    MVC

    C:控制(主框架) M:模型(厂商实现) V:视图(主程序测试程序)

  • 相关阅读:
    web学习---html,js,php,mysql一个动态网页获取流程
    用正则表达式做替换
    Array.prototype.slice.call(arguments)
    javascript join以及slice,push函数
    SQLServer中跨服务器跨数据库之间的数据操作
    SQL Server里面如何导出包含数据的SQL脚本
    Sql Server 常用日期格式
    Microsoft SQL Server下的SQL语句
    多线程与UI操作(二)
    多线程与UI操作(一)
  • 原文地址:https://www.cnblogs.com/Lunais/p/5697033.html
Copyright © 2020-2023  润新知