当前位置: 首页 > news >正文

C++学习, 接口

接口描述了类的行为和功能,不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。

类中至少有一个函数被声明为纯虚函数,这个类就是抽象类,纯虚函数声明中使用 "= 0" 指定。

class Box
{
   public:
      // 纯虚函数
      virtual double getVolume() = 0;
   private:
      double length;      // 长度
      double breadth;     // 宽度
      double height;      // 高度
};

抽象基类是一个至少包含一个纯虚函数的类。由于它至少包含一个纯虚函数,因此它不能被实例化。抽象基类通常用作接口,定义了一组必须由派生类实现的函数。

 

抽象基类和纯虚函数示例:

<iostream>    
// 定义一个接口(通过抽象基类)  
class Shape {  
public:  
    // 纯虚函数,要求派生类必须实现  
    virtual void draw() const = 0;  
  
    // 虚析构函数,基类指针删除派生类对象时能够正确调用派生类的析构函数  
    virtual ~Shape() {}  
};  
  
// 派生类实现接口  
class Circle : public Shape {  
public:  
    void draw() const override {  
        std::cout << "Drawing Circle" << std::endl;  
    }  
};  
  
class Rectangle : public Shape {  
public:  
    void draw() const override {  
        std::cout << "Drawing Rectangle" << std::endl;  
    }  
};  
  
// 使用接口  
void drawShape(const Shape& shape) {  
    shape.draw();  
}  
  
int main() {  
    Circle circle;  
    Rectangle rectangle;  
  
    drawShape(circle);  // 输出: Drawing Circle  
    drawShape(rectangle); // 输出: Drawing Rectangle  
  
    return 0;  
}

 

 


http://www.mrgr.cn/news/29327.html

相关文章:

  • 前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)
  • SCUI Admin + Laravel 整合
  • Python自动化运维DevSecOps与安全自动化
  • ssm103宠物领养系统+vue(论文+源码)_kaic
  • Qt_day10_程序打包(完结)
  • 【MySQL】数据库必备知识:全面整合表的约束与深度解析
  • 【机器学习(七)】分类和回归任务-K-近邻 (KNN)算法-Sentosa_DSML社区版
  • 检查dll依赖运行情况:dependency walker(depends)下载链接
  • OpenFeign接口调用日志
  • WordPress建站钩子函数及使用
  • 2024/9/18 英语每日一段
  • 探索iPhone一键删除重复照片的方法
  • 【STM32系统】基于STM32设计的DAC输出电压与ADC检测电压系统(简易万用表,检测电压电流)——文末工程资料下载
  • 阻止冒泡事件
  • Qt开发技巧(四)“tr“使用,时间类使用,Qt容器取值,类对象的删除,QPainter画家类,QString的转换,用好 QVariant类型
  • PDF标准详解(五)——图形状态
  • uniapp开发微信小程序时, 如何跳转官方的用户服务协议
  • 上架google 提示 base模块超出200MB限制?
  • 这几个电脑文件加密的方法你都知道吗?
  • 【C++】透析string类
  • 创客中国AIGC专题赛冠军天鹜科技:AI蛋白质设计引领者
  • 开源即时通讯IM框架MobileIMSDK的H5端技术概览
  • DTMF2str集成工具
  • Docker 和 containerd 的性能对比
  • 【运维项目经历|044】云迁移与CI/CD管道优化项目
  • 便携式气象监测站的工作原理