• 5.0 C++远征:接口类


    3-5接口类

    一、接口类

    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(){......}		// 实现“装弹”
    };
    
  • 相关阅读:
    Dangling Javadoc comment
    IntelliJ IDEA :Error(1, 1) java 非法字符 'ufeff'
    什么是webhook
    智能DNS
    filebeat 乱码
    windows,交换机syslog收集
    Rsyslog
    ntp
    centos7 -lvm卷组
    nginx安装
  • 原文地址:https://www.cnblogs.com/xiaoqingyang/p/6077551.html
Copyright © 2020-2023  润新知