zoukankan      html  css  js  c++  java
  • 接口

    接口描述了类的行为和功能,而不需要完成类的特定实现。

    C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。

    如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示:

    设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能作为接口使用。如果试图实例化一个抽象类的对象,会导致编译错误。

    因此,如果一个 ABC 的子类需要被实例化,则必须实现每个虚函数,这也意味着 C++ 支持使用 ABC 声明接口。如果没有在派生类中重写纯虚函数,就尝试实例化该类的对象,会导致编译错误。

    可用于实例化对象的类被称为具体类

    #include<iostream>
    using namespace std;
    class Shape{
    protected:
    int height;
    int width;
    #include<iostream>
    using namespace std;
    class Shape{
    protected:
    int height;
    int width;
    //纯虚函数
    private:
    virtual int getArea()=0;
    public:
    int setHeight(int h){
    height=h;
    }
    };
    class Regtangle:public Shape{
    public:
    Regtangle(int w,int h){
    width=w;
    height=h;
    };
    int getArea(){
    return height*width;
    }
    };
    int main(){
    Regtangle r(1,2);
    cout<<r.getArea();
    }

    面向对象的系统可能会使用一个抽象基类为所有的外部应用程序提供一个适当的、通用的、标准化的接口。然后,派生类通过继承抽象基类,就把所有类似的操作都继承下来。

  • 相关阅读:
    第十六章 课程总复习
    第四章 数据类型及数据库基本操作
    第二章.图形化管理工具
    第十三章 指导学习:人机猜拳
    洛谷 P4396 (离散化+莫队+树状数组)
    洛谷 P1351 (枚举)
    洛谷P5322 (BJOI 2019) DP
    P3376 网络最大流模板(Dinic + dfs多路增广优化 + 炸点优化 + 当前弧优化)
    洛谷 P2176(最短路)
    HDU 6556 (2018CCPC吉林 B题)
  • 原文地址:https://www.cnblogs.com/webcyh/p/11293872.html
Copyright © 2011-2022 走看看