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

embedded/2024/10/20 16:59:54/

基础

  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.ppmy.cn/embedded/15679.html

相关文章

MongoDB聚合运算符:$setEquals

MongoDB聚合运算符&#xff1a;$setEquals 文章目录 MongoDB聚合运算符&#xff1a;$setEquals语法使用举例 $setEquals聚合运算符用于比较两个或多个数组&#xff0c;如果它们有相同的不重复的元素&#xff0c;则返回true&#xff0c;否则返回false。 语法 { $setEquals: [ &…

UDP文件传输工具之UDP怎么限流

UDP&#xff08;用户数据报协议&#xff09;以其低延迟和高速度的特点&#xff0c;在实时应用和大数据传输中扮演着重要角色。然而&#xff0c;UDP作为一种无连接的协议&#xff0c;并不保证数据包的顺序、完整性或可靠性。 因此&#xff0c;企业在寻求一种方式&#xff0c;有…

InstantMesh:利用稀疏视图大规模重建模型从单张图像高效生成3D网格

作者&#xff1a;Jiale Xu&#xff0c;Weihao Cheng&#xff0c;Yiming Gao等 编译&#xff1a;东岸因为一点人工一点智能 InstantMesh&#xff1a;利用稀疏视图大规模重建模型从单张图像高效生成3D网格在这项工作中&#xff0c;我们提出了InstantMesh&#xff0c;一个开源的…

jenkins 部署 vue 项目

jenkins 部署 vue 项目 环境 系统&#xff1a;CentOS7.9 Jenkins&#xff1a;最新LTS版本 nginx: 1.24.x gitLab: 打包机&#xff1a;jenkins所在服务器 目标机器&#xff1a;nginx所在服务器 jenkins部署配置 关键脚本 #node -v #已经安装node_module就无需执行install安…

【蓝桥杯2025备赛】集合求和

集合求和 题目描述 给定一个集合 s s s&#xff08;集合元素数量 ≤ 30 \le 30 ≤30&#xff09;&#xff0c;求出此集合所有子集元素之和。 输入格式 集合中的元素&#xff08;元素 ≤ 1000 \le 1000 ≤1000&#xff09; 输出格式 s s s 所有子集元素之和。 样例 #1 …

LeetCode-219. 存在重复元素 II

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&…

mybatis的SqlSession

先来看一下sqlsession接口&#xff0c;发现它为我们定义了很多对数据库数据操作的相关方法。 public interface SqlSession extends Closeable {<T> T selectOne(String var1);<T> T selectOne(String var1, Object var2);<E> List<E> selectList(Str…

SpringBoot项目启动内存泄漏问题排查与解决

在今天的开发过程中&#xff0c;我遇到了一个SpringBoot项目启动时显示内存泄漏的问题。这个问题让我头疼了一段时间&#xff0c;但经过多次排查&#xff0c;最终成功解决了。现在我将这个过程分享给大家&#xff0c;希望能对遇到类似问题的朋友们有所帮助。 问题现象 在启动…