美文网首页C/C++学习笔记
5.0 C++远征:接口类

5.0 C++远征:接口类

作者: 青_阳 | 来源:发表于2016-11-18 18:33 被阅读7次

    3-5接口类

    [TOC]

    一、接口类

    1.接口类的定义

    仅含有纯虚函数的类,称之为接口类。

    ​ 成员函数都是纯虚函数。

    class Shape {
      public:
        virtual double calcArea() = 0;          // 计算面积
        virtual double calcPerimeter() = 0;     // 计算周长
    };
    

    2.接口类更多的是表达一种能力或协议

    // Interface Class
    class Flyable { // 能“起飞”能“降落”,就是能“飞”
      public:
        virtual void takeoff() = 0; // 起飞
        virtual void land() = 0;    // 降落
    };
    
    // Bird.cpp
    class Bird : public Flyable {
      public:
        ......
        virtual void tabkeoff(){......}     // 实现“起飞”
        virtual void land(){......}         // 实现“降落”
      private:
        ......
    };
    
    // 飞行竞赛.cpp
    void flyMatch(Flyable *a, Flyable *b) { // 传入的对象只要是Flyable的派生类就行了——“协议”
      ......
      a->takeoff();     // 调用约定的“降落”
      b->takeoff();
      a->land();        // 调用约定的“起飞”
      b->land();
    }
    
    // Interface class
    class Shotable {
      public:
        virtual void aim() = 0;     // 瞄准
        virtual void reload() = 0;  // 装弹
    };
    
    // Plane.cpp
    class Plane : public Flyable, public Shotable { // 多继承
      ......
      virtual void takeoff(){......}    // 实现“起飞”
      virtual void land(){......}       // 实现“降落”
      virtual void aim(){......}        // 实现“瞄准”
      virtual void reload(){......}     // 实现“装弹”
    };
    

    相关文章

      网友评论

        本文标题:5.0 C++远征:接口类

        本文链接:https://www.haomeiwen.com/subject/pyqspttx.html