【C++】抽象类 与 C++

基础

  1. C++中没有抽象类的概念
  2. C++中通过纯虚函数实现抽象类
  3. 纯虚函数只是定义原型的成员函数
  4. 一个类中存在纯虚函数就成为了抽象类

纯虚函数语法

class Shape
{public:virtual double area() =0;// =0 用于告诉编译器当前是声明纯虚函数,因此不需要定义函数体
};

抽象类与纯虚函数

1. 抽象类只能做基类被继承
2. 派生类必须实现纯虚函数的具体功能
3. 纯虚函数被实现后成为虚函数
4. 若子类没有实现纯虚函数,则子类成为抽象类

完整代码

class Shape
{public:virtual double area() =0;
};
class Rect :public Shape
{int ma;int mb;public:Rect(int a,int b){ma = a;mb = b;}double area(){ return ma * mb;}
};
class Circle :public Shape
{int mr;public:Circle(int r){mr = r;}double area(){ return 3.14 * mr * mr;}
};void area(Shape* p)
{double r = p->area();cout << "area = " << r << endl;
}
int main()
{Rect rect(1,2);Circle cle(10);area(&rect);area(&cle);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统思考—心智模式

如果你总是做你过去一直做的事&#xff0c;你将永远得到你一直得到的结果。——托尼罗宾斯 在1980年代早期&#xff0c;美国汽车公司的高层主管定期前往日本参观&#xff0c;想要了解日本汽车行业为何能超越美国。这些主管返回后常说&#xff1a;“他们没有让我们看到真正的工…

工作任务管理平台作品集源文件 figma格式UX/UI设计师作品集

交付文件&#xff1a;作品集源文件项目源文件包装样机源文件字体文件 交付格式&#xff1a;figma、psd 作品集文件页数&#xff1a;28页 项目文件页数&#xff1a;12页&#xff08;Web&#xff09;12页&#xff08;App&#xff09; 以下重点哦&#xff0c;请认真阅读&#…

碰撞检测与相交测试-unity碰撞检测和相交测试的实现原理

Unity中的碰撞检测和相交测试是通过物理引擎来实现的。Unity使用了基于迭代的动态物理引擎&#xff0c;其中包含了一些常用的碰撞检测算法和相交测试算法。 碰撞检测是指判断两个物体是否发生了碰撞&#xff0c;而相交测试是指判断两个物体是否有交集。 在Unity中&#xff0c…

Halcon 3D 使用3D ROI截取模型

Halcon 3D 使用3D ROI截取模型 链接:https://pan.baidu.com/s/1UfFyZ6y-EFq9jy0T_DTJGA 提取码:ewdi * 1.读取图片 ****************

《R语言与农业数据统计分析及建模》学习——方差分析

方差分析是研究一种或多种因素的变化对试验结果的观测值是否有显著影响&#xff0c;从而找到较优试验条件或生产条件的一种常用数理统计方法。 方差分析根据平方和的加和原理&#xff0c;利用F检验&#xff0c;进而判断试验因素对试验结果的影响是否显著。 分为&#xff1a;单因…

CMake+qt+Visual Studio

#使用qt Creator 创建Cmake 项目,使用Cmake Gui 生成sln 工程&#xff0c;使用Visual Studio 开发 ##使用qt Creator 创建CMake项目 和创建pro工程的步骤一致&#xff0c;只是在选择构建系统的步骤上选择CMake,接下来步骤完全相同 工程新建完成之后&#xff0c;构建cmake 项…

公司服务器中的kafka消息中间件挂了,我是如何修复的?

今天的公司的system系统服务在运行过程中&#xff0c;提示连接不上kafuka的消息中间件。但是负责kafka的同事已经离职了&#xff0c;询问公司开发也不知道如何处理&#xff0c;我是如何重启kafka消息中间件使system系统服务正常运行&#xff1f; 查看kafka的安装位置 在下面的…

Java基础:设计模式之原型模式

原型模式是一种创建型设计模式&#xff0c;它允许我们通过复制现有的对象来创建新的对象&#xff0c;而不是每次都通过构造函数新建。这种模式适用于那些创建新对象成本较高或者构造过程复杂的情况。在原型模式中&#xff0c;一个对象通过实现Cloneable接口并重写其clone()方法…

WPF —— MVVM架构

1 什么是MVVM&#xff1f; MVVM是一种软件架构模式&#xff0c;它将应用程序分为三个层次 model&#xff08;数据模型&#xff09;&#xff0c;view&#xff08;视图&#xff09;&#xff0c;viewmodel&#xff08;视图模型&#xff09; model&#xff1a;表示应用程序当中数…

什么是RabbitMQ,RabbitMQ基本概念,RabbitMQ的使用场景

目录 面试官:什么是RabbitMQ,RabbitMQ的使用场景什么是RabbitMQ?RabbitMQ基本概念RabbitMQ的使用场景举例该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:什么是RabbitMQ,RabbitMQ的使用场景 …

SpringCloud之Feign集成Ribbon

Feign定义【可跳过】 Spring Cloud Feign是一个声明式的伪Http客户端&#xff0c;它使得写Http客户端变得更简单。其英文表意为“假装&#xff0c;伪装&#xff0c;变形”&#xff0c;是一个http请求调用的轻量级框架&#xff0c;可以以Java接口注解的方式调用Http请求&#x…

jmeter固定定时器,生效是在请求发送前还是发送后

一、结论 先说结果&#xff0c;是生效在请求发送前 二、背景 在压测流程的时候&#xff0c;生成订单后紧接着调订单查询接口&#xff0c;查询不到&#xff0c;报错率还挺高的,原因肯定是主从延迟&#xff0c;但是DBA非说延时1s内是正常的&#xff0c;在CPU耗用在40%以内的情…

IDM下载器_Internet Download Manager 6.42.7

网盘下载 IDM下载器是一款针对互联网所打造的下载管理器。IDM下载器能将下载速度提高5倍&#xff0c;恢复因丢失的连接&#xff0c;网络问题&#xff0c;计算机关闭或意外断电而重新启动中断或中断的下载。IDM下载器还可支持所有流行的浏览器&#xff0c;以使用独特的“高级浏…

【打工日常】云原生之部署私有化个人工作云盘

一、FileGator介绍1.FileGator简介FileGator是一个免费开源自托管的Web应用程序,用于管理文件和文件夹,部署在自己的服务器上,解放笔记本的压力,随时随地的能看到自己的文件,并且可以共享,方便团队的协作,更有利于个人工作的开展。2.FileGator功能管理本地存储库文件夹中…

视频改字祝福 豪车装X系统源码uniapp前端源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 uniapp视频改字祝福 豪车装X系统源码 全开源。 创意无限&#xff01;AI视频改字祝福&#xff0c;豪车装X系统源码开源&#xff0c;打造个性化祝福视频不再难&#xff01; 想要为你的…

RealSenseSR300工程环境配置说明

新建目录结构如下&#xff1a; output:存储可执行文件.exe等src:存储源码.cpp .h等3rdparty:存储第三方库 opencv等 其中将源码按照main及其相关文件分为以下三类 vs2015许可证到期后先激活&#xff0c;激活码很多网上有&#xff0c;如&#xff1a;HMGNV-WCYXV-X7G9W-YCX63…

开发Chrome插件入门

开发Chrome插件&#xff08;也称为Chrome扩展&#xff09;是一个相对直接的过程&#xff0c;尤其对于已经熟悉HTML、CSS、JavaScript的前端开发者而言。以下是开发Chrome插件的基本步骤和示例&#xff1a; 1. 准备工作 首先&#xff0c;确保你有一个适合开发的环境。通常这意…

2024.4.25

#include <iostream> #include <iomanip> using namespace std; class Person{const string name;int age;char sex; public:Person(const string name):name(name){cout << "第一个Person构造函数" << endl;}Person():name("zhangsan&…

java语言基础面试题(一)

面试题1&#xff1a;简述Java的主要特性。 回答&#xff1a;Java的主要特性包括面向对象、跨平台性&#xff08;通过JVM实现&#xff09;、自动内存管理&#xff08;垃圾回收机制&#xff09;、丰富的API和安全性高。 面试题2&#xff1a;解释Java中的多态性。 回答&#xf…

3.7设计模式——Observer 观察者模式(行为型)

意图 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于他的对象都得到通知并被自动更新。 结构 Subject&#xff08;目标&#xff09;知道它的观察者&#xff0c;可以有任意多个观察者观察同一个目标&#xff0c;提供注册和删…