C++ 抽象类

2023-11-17

抽象类(接口)

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

C++接口时通过抽象类实现的,设计抽象类的目的,是为了给其他类提供一个可以继承的适当的基类.抽象类本类不能被用于实例化对象,只能作为接口使用

注意:
如果试图实例化一个抽象类的对象,会导致编译错误
因此,如果一个抽象类的派生类需要被实例化(建立对象),则必须对每个继承来的纯虚函数进行函数体实现.
如果没有在派生类中重写所有纯虚函数,就尝试实例化派生类的对象,也会导致编译错误,这是因为如果派生类没有实现父类的纯虚函数,则派生类变为抽象类

抽象类基类为派生自抽象基类的派生类提供了约束条件,即派生类必须要实现继承自抽象基类中的纯虚函数,否则此派生类不可进行实例化,且派生类将继承为抽象派生类


抽象类与纯虚函数(抽象方法)

纯虚函数是一个在 基类中声明的虚函数,它在该基类中没有定义具体的函数体(操作内容),要求派生类根据实际需要定义自己的版本,设计多层次类继承关系时用到。把某个方法声明为一个抽象方法等于告诉编译器,这个方法必不可少,但目前在基类中还不能为它提供实现

纯虚函数的标准格式:

virtual 函数类型 函数名(参数表)=0;

class Pet
{
public:
virtual void func()=0;//这便是声明了一个纯虚函数 也就是在虚函数尾部加上" =0 " 一个虚函数便被声明成为了一个纯虚函数
// 等于0表示该函数仅声明而没有函数体
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 抽象类 的相关文章

  • 类的成员函数

    类的成员函数 1 拷贝构造函数 1 1 定义 1 2 特征 1 3 implementation 2 赋值运算符重载 2 1 定义 2 2 特征 2 3 implementation 1 拷贝构造函数 1 1 定义 构造函数 特殊的成员函数
  • C# 接口Get请求带Body

    这几天在调用第三方的接口遇到了GET请求并且还要带有body参数 并且参数类型还得是Json 在我的记忆力GET都是URL传参 网上找了好多方法都不行 用Postman调用可以请求到数据 但是C 代码怎么弄都不行 用Postman生成得代码
  • CAN 为什么需要收发器

    在RTL代码中集成了两个CAN node 打算直接连接将两个node的Rx和Tx对接 发现两个CAN Node无法通信 询问技术支持后才知道必须要收发器 那为什么一定需要收发器呢 除了转换单端的CAN信号用于不同的传输 收发器也会将CANT
  • 调研一台电脑连接两个键盘如何区分遇到的问题及解决方法

    1 查找windows API 手册 调用GetRawInputData函数 可以获得按下的键值VKey以及唯一的句柄hDevice 但是hDevice并不能直观的对应不同键盘而且每当拔下键盘 重新插入的时候hDevice会发生变化 2 继
  • 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。

    分数 题目内容 设计一个表示分数的类Fraction 这个类用两个int类型的变量分别表示分子和分母 这个类的构造函数是 Fraction int a int b 构造一个a b的分数 这个类要提供以下的功能 double toDouble
  • JMeter性能测试,完整入门篇

    1 Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 相比Loadrunner而言 JMeter小巧轻便且免费 逐渐成为了主流的性能测试工具 是每个测试人员都必须要掌握的工具之一 本文为JM
  • C#中的接口(interface)

    接口的命名规范 I 名词 接口与抽象类的区别 接口是由抽象类演变而来的 抽象类是未完全实现逻辑的类 其内部可以有抽象成员 也可以有非抽象成员 且子类在覆写抽象成员时 需要修饰符override 而接口是完全未实现逻辑的 其内部只允许存在抽象
  • Mock入门

    关键参数 name 唯一标识 return value 当被调用时 返回的值 可为函数 side effct 当存在时 return value不生效 返回side effect 导入库 from unittest import mock
  • apifox图片验证码显示

    添加后置脚本 脚本内容如下 var resp response pm response json let img resp response data let template img src img pm visualizer set t
  • 类的继承层次结构的宽度和深度

    最近在项目开发中 各位兄弟对于现有的架构有所诟病 主要是继承的问题 层次比较深 层次之间没有很明确的功能划分 造成一定的混乱 我来承担工作 想出一套新的方案 满足大家平时开发的需求 先总结下现在项目的问题 一个是层次深 一个是抽象的不好 大
  • 类什么时候被加载 java

    创建对象实例时 new 创建子类对象实例 父类也被加载 使用类的静态成员时 静态属性 静态方法
  • 接口自动化平台(三):Promise简介 + 前端 + 后端 + 联调

    目录 1 Promise 2 接口自动化平台前端开发 2 1 前端环境搭建 2 2 新建用例页 CreateCase 2 2 1 增加路由信息 config routes ts 2 2 2 增加对应后端接口的信息 config proxy
  • 友元成员函数使用时的注意事项

    友元成员函数的注意事项 友元的概念 友元 的概念其实是针对于类的私有成员来说的 一个类的由于封装的缘故 类体中私有成员是不可以被外界访问的 无论是继承也好 都是无法访问类内私有成员的 但是正是有那么一些人 愿意打破陈规破例访问类体内的私有成
  • Pythonの类

    Python是一种面向对象编程语言 因此类在Python中是很重要的概念 类是一种定义数据和行为的模板 可以创建对象并针对特定的问题对其进行操作 在Python中 类的定义以关键字 class 开头 后跟类的名称 类可以包含方法和属性 方法
  • 基于Python3的接口自动化总结(一)——文件上传接口

    文件上传接口 api POST http host api import 接口入参 file 文件内容 import os import urllib3 import ast def import by rest self file pat
  • 设计模式的 C++ 实现---原型模式

    前文回顾 单例模式 一 单例模式 二 观察者模式 简单工厂模式 工厂方法模式 一 工厂方法模式 二 抽象工厂模式 一 抽象工厂模式 二 前言 原型模式指直接用一个已经存在的对象来创建一个新的对象 然后对新对象进行稍微修改即可 类似复制的操作
  • _thiscall调用约定的简单概念

    thiscall 我们知道在c中由三种调用约定 cdecl stdcall和 fastcall 其中 stdcall调用约定是windows平台的 在c 中还有一种约定 thiscall调用约定 它是一种类成员方法调用约定 当我们说起 th
  • Java学习心得10——多态

    多态 一种类型的变量可以掌管多种类型的对象 这就是多态 说人话 直观理解成多种形态 人类就是多态的 黄种人 白种人 黑种人都是属于人类 人类这一个类可以表示黄种人 白种人 黑种人这三个类 这不就是多态多种形态吗 回到编程 Animal 动物
  • CSharp之接口(Interface)

    接口通过Interface关键字修饰 接口是抽象类的一个实例 当抽象类中所有的方法全部为抽象方法时 这个抽象类可以称为接口 接口不能被实例化 接口中的方法没有方法体 只能包含方法的声明 并且所有方法成员是公有的 public 接口中成员不能
  • 所有OLE接口

    比较有用 记录下来供查阅 常规 函数 lUnknown 目的 控制的接口协商的对象生存期 普遍存在的任何组件 而不考虑实现 QueryInterface 公开传入的接口 函数 IEnum 目的 枚举的各种类型的列表 在许多情况下 整个 OL

随机推荐

  • 查看Postgresql的连接状况

    今天遇到一个问题 就是pg一直报错 说有太多的客户端连接到数据库上面 但现在不知道是什么程序连接 pg默认的max connection是100 我并没有修改过 以为平时公司内部用 应该够了 但现在貌似这100个连接都被消耗掉 在网上goo
  • 【CSS】如何用css做一个爱心

    摘要 HTML的标签都比较简单 入门非常的迅速 但是CSS是一个需要我们深度挖掘的东西 里面的很多样式属性掌握几个常用的便可以实现很好看的效果 下面我便教大家如何用CSS做一个爱心 前期预备知识 明白正方形的画法 明白圆形的画法 明白什么是
  • Android下基于Http协议的网络摄像机开发

    这段时间在做Android平台下的网络摄像机的兼容 摄像机的通讯采用Http1 1协议 现将遇到的问题简单总结一下 1 Http协议中需要用到身份认证部分 不同厂家的摄像机所采取的方案可能有所不同 但是大体无外乎都是将摄像机的用户名和密码简
  • 江科大自化协STM32学习笔记(部分C语言知识、STM32简介和GPIO口的使用)

    本篇文章是根据B站UP主江科大自化协的教学视频STM32入门教程 2023持续更新中 在了解 学习与实操后整理的学习笔记 内容部分来自UP主的课程资料 并包含了一些个人的理解 如有谬误欢迎指正 详细知识点可以观看UP主的视频进行了解 希望大
  • php如何读取解析eml文件以及生成网页的示例分享

    这篇文章主要介绍了PHP读取 解析eml文件及生成网页的方法 结合实例形式分析了PHP操作eml文件的读取 解析 转换等相关实现技巧与注意事项 并附带demo源码供读者下载参考 需要的朋友可以参考下 本文实例讲述了PHP读取 解析eml文件
  • Linux及Windows下编译exosip和osip2源码

    eXosip库及编译流程简介 1 eXosip库的简介 1 1 osip简介 osip2是一个开放源代码的sip协议栈 是开源代码中不多使用C语言写的协议栈之一 它具有短小简洁的特点 专注于sip底层解析使得它的效率比较高 但缺点也很明显
  • 前端通过FormData上传文件到服务器端

    前端代码 html
  • Win 11 打开未知文件/打开方式 该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联。

    问题 鼠标右键选中文件 打开方式 或者选择其他应用 弹窗提示 该文件没有与之关联的应用来执行该操作 请安装应用 若已经安装应用 请在 默认应用设置 页面中创建关联 打开注册表 查看是否存在以下路径 HKEY CLASSES ROOT Unk
  • Visual Studio Code如何打开多个tab标签

    原创 Visual Studio Code如何打开多个tab标签 SweetTool的专栏 CSDN博客 在打开文件夹预览的模式下VS Code默认单击打开文件时仅保存一个tab 例如当前window打开一个tabA 然后点击另外一个文件B
  • 带你了解ES6 Module

    1 commonJS 在说 es6 模块以前 我们先来看一下后端普遍使用的打包方式 commonJS的一些特性 同步加载 也就是串行执行 后面的任务要等到前面任务执行完才能继续执行 语法 commonJS中使用 require 引入 mod
  • [Paper-CV] ECCV 2012 papers 1

    http applesun0757 blog 163 com blog static 18737419220126702145274 Paper CV ECCV 2012 papers 1 2012 07 07 00 21 45 分类 Pa
  • linux中替换命令详解,linux中tr命令详解 (替换,删除d,缩减s)

    tr用来从标准输入中通过替换或删除操作进行字符转换 tr主要用于删除文件中控制字符或进行字符转换 特别要注意一点 tr 只能进行字符的替换 缩减和删除 不能用来替换字符串 最常用选项的tr命令格式为 tr c d s string1 to
  • C# 网络编程之Tcp实现客户端和服务器聊天

    最近使用Socket网络套接字编程中 在同步与异步通讯中客户端与服务器总是无法响应 但在学习Tcp协议编程中完成了通讯聊天功能 下面简单讲讲我最近学到的及Tcp聊天的源代码及详细注释 Tcp协议是一个传输层的协议 在Tcp协议编程中它通常使
  • OpenGL超级宝典 纹理(一)

    文章目录 纹理 创建并且初始化纹理 更新纹理数据 从着色器中读取数据 采样器类型 控制纹理数据的读取方式 创建采样器对象和绑定到纹理单元 纹理过滤 设置过滤器 加载纹理 完整代码展示 shader vertex shader fragmen
  • mysql 授权管理和设置

    1 给指定数据库增加所有权限 所有库即 GRANT ALL PRIVILEGES ON TO 用户名 IDENTIFIED BY 密码 WITH GRANT OPTION 设置完之后更新权限表 FLUSH PRIVILEGES 2 给用户增
  • C++11模板元编程-std::enable_if示例详解

    文章目录 1 限制模板函数的参数类型 2 模板类型偏特化 传送门 gt gt AutoSAR实战系列300讲 糖果Autosar 总目录 C 11中引入了std enable if函数 函数原型如下 template lt bool B c
  • AI+数据安全,探索数据安全防护新手段

    随着 4G 正式商用 带宽将不再是数据传输的瓶颈 人类社会真正意义的进入了以手持终端 各类传感器为代表的移动互联网 万物互联 人工智能时代 我们将不再受限于地理位置 可尽情享受着手机购物 电子支付 媒体社交 个性化推送 VR等各种便捷和个性
  • 计算机图形学十五:基于物理的渲染(蒙特卡洛路径追踪)

    蒙特卡洛路径追踪 摘要 1 蒙特卡洛积分 Monte Carlo Integration 2 蒙特卡洛路径追踪 Monte Carlo Path Tracing Reference 本篇文章同步发表于知乎专栏 https zhuanlan
  • PHP与JSON的一些常用操作

    PHP把数据写入JSON文件 PHP读取JSON数据
  • C++ 抽象类

    抽象类 接口 接口描述了类的行为和功能 而无需完成类的特定实现 C 接口时通过抽象类实现的 设计抽象类的目的 是为了给其他类提供一个可以继承的适当的基类 抽象类本类不能被用于实例化对象 只能作为接口使用 注意 如果试图实例化一个抽象类的对象