首页 > 其他分享 >49.接口的定义

49.接口的定义

时间:2023-02-23 22:48:09浏览次数:29  
标签:定义 49 int void 接口 virtual 纯虚 基类

1.抽象基类和纯虚函数

  在设计时,常常希望基类仅仅作为其派生类的一个接口。这就是说,仅想对基类进行向上类型转换,使用它的接口,而不希望用户实际的创建一个基类的对象。同时创建一个纯虚函数允许接口中放置成员原函数,而不一定要提供一段可能对这个函数毫无意义的代码。

  做到这点,可以在基类中加入至少一个纯虚函数(pure virtual function),使得基类称为抽象类(abstract class).

■纯虚函数使用关键字virtual,并在其后面加上=0。如果试图去实例化一个抽象类,编译器则会阻止这种操作。

■当继承一个抽象类的时候,必须实现所有的纯虚函数,否则由抽象类派生的类也是一个抽象类。

■Virtual void fun() = 0;告诉编译器在vtable中为函数保留一个位置,但在这个特定位置不放地址。

建立公共接口目的是为了将子类公共的操作抽象出来,可以通过一个公共接口来操纵一组类,且这个公共接口不需要事先(或者不需要完全实现)。可以创建一个公共类.

2.视频内容

  1.所谓的接口,即将内部实现细节封装起来,外部用户用过预留的接口可以使用接口的功能而不需要知晓内部具体细节。C++中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类实现接口的方式也不尽相同

程序:

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
//2022年10月18日21:55:39
#include<iostream>
using namespace std;

//抽象类
class Father
{
public:
    virtual void func1() = 0;//接口的声明
    virtual void func2(int a) = 0;
    virtual void func3(int a, int b) = 0;
};

class Son:public Father
{
public:
    virtual void func1()//接口的实现
    {

    }
    virtual void func2(int a)
    {

    }
    virtual void func3(int a, int b)
    {

    }
};

void test()
{
    Son s;
    s.func1();
}


int main()
{

    system("pause");
    return EXIT_SUCCESS;
}


参考资料

参考资料来源于黑马程序员等

标签:定义,49,int,void,接口,virtual,纯虚,基类
From: https://www.cnblogs.com/codemagiciant/p/17149719.html

相关文章

  • 抽象类和接口
    抽象类代表一个抽象概念的类;规定整个类家族都必须具备的属性和行为。一、抽象类性质类名前加修饰符abstract;可包含常规类能包含的任何成员,包括非抽象方法;也可包含......
  • Nano SIM 卡引脚定义//京鸿通信科技(深圳)有限公司 www.kyohoon.com 15507589165
    前言想做个接口板,将第三方的4G模块接进来.先查了下SIM卡的引脚定义,这样就可以将硬件接口先定下来,板子可以分开作。  作为接口板,只需要引出以下引脚:电源接口VCC/GN......
  • RESETful API接口设计规范
    开发工作中,我们有时需要提供API接口给客户端或者第三方使用,那么如何构建一个能让使用者快速理解的API是一项重要的工作。如何我们在设计API时就严格遵守一些规范,那么在后面......
  • Java集合Set接口详解——含源码分析
    前言前几天我们看了​​Java集合List接口详解——含源码分析​​,今天我们看一个数据一个数据存储的另一个接口——Set。Set前面我们说List最大的特点是:​​有序,不唯一​​,而......
  • lazada商品详情数据接口采集代码展示
    业务背景 在很多行业,比如商品采集、刊登、直播、数据分析、竞价等行业都需要用到相关的销量接口,但是官方一般又没有开放这些接口,怎么办?解决方案(点击获取key和secret)目前......
  • ONES 对话 Eolink :数字化企业连接世界的第一接口
    EolinkEolink的创业方向是一次无心插柳。在Eolink创办之前,创始人刘昊臻先后参与了技术外包、在线医疗、O2O电商等创业项目,但是觉得不太符合自己的期望。2015年底......
  • python+playwright 学习-12.Mock 接口返回,模拟各种异常场景
    前言web自动化主要测前端UI的功能,有很多异常的场景,我们很难造真实的场景去触发,比如服务器异常时候,前端的提示语。这时候就可以使用mock功能,模拟接口的返回,测试前端的......
  • Nginx生成自定义证书
    1、创建存放证书的目录,此目录可自定义cd/usr/local/nginx/conf/cretmkdirkeycdkey先安装依赖包yum-yinstallporc-develzlib-develpopt-developenssl-developen......
  • java 面向接口编程
        Advertisement.javapublicinterfaceAdvertisement{//接口publicvoidshowAdvertisement();publicStringgetCorpName();}Advertis......
  • 自定义属性访问
    什么是属性?下面的例子a和b是属性吗?不是,他们是全局变量,属性(attribute)是类中的成员变量,也可以理解为属性就是类变量。pythona=11234b='python'PYTHON复制全屏类中......