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

基础语法——组合与继承

继承

定义派生类,即继承的一般语法结构如下

class 派生类名 : [继承方式] 基类名
{
};

例如

class Point{int x, y;
public:Point(int a=0, int b=0): x(a), y(b){}virtual double area() {return 0.0; };virtual double volume() { return 0.0; }
};
class Circle: public Point{...
}; 
class Cylinder: public Circle{...
};

虚函数

虚函数体现了多态性

通过关键字virtual将基类的函数声明为虚函数,允许派生类重写(覆盖)该函数

class Point{int x, y;
public:Point(int a=0, int b=0): x(a), y(b){}virtual double area() {return 0.0; };virtual double volume() { return 0.0; }
};

override说明符

override说明符显式声明了派生类中的一个成员函数重写、覆盖(override)了一个基类中的虚函数

class Point{int x, y;
public:Point(int a=0, int b=0): x(a), y(b){}virtual double area() {return 0.0; };virtual double volume() { return 0.0; }
};
class Circle : public Point
{
public:double radius;Circle(double _radius, int a = 0, int b = 0) : radius(_radius), Point(a, b){};virtual double area () override{return pi * radius * radius;}virtual double volume() override{return 0.0;}
};class Cylinder : public Circle
{
public:double height;Cylinder(double _height, double _radius, int a = 0, int b = 0) : height(_height), Circle(_radius, a, b){};virtual double area () override{return 2 * Circle :: area() + 2 * pi * radius * height;}virtual double volume() override{return Circle :: area() * height;}
};

P.S.:如果基类中成员函数没加virtual说明符,那么你在派生类中重写该成员函数时候就不用加override说明符,直接重写就可以 

http://www.lryc.cn/news/378669.html

相关文章:

  • openGauss开发者大会、华为云HDC大会举行; PostgreSQL中国技术大会7月杭州开启
  • 编译报错:No rule to make target xx/libcam.halmemory_intermediates/export_includes
  • 【备考指南】CDA Level Ⅰ 最全备考攻略
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 5G基站光纤连接问题(200分) - 三语言AC题解(Python/Java/Cpp)
  • 分层Agent
  • OS复习笔记ch11-1
  • Docker Compose 使用
  • KEIL5.39 5.40 fromelf 不能生成HEX bug
  • mongosh 和mongo 命令行连接MongoDB
  • DOM 改变节点
  • 【面试题分享】重现 string.h 库常用的函数
  • 6.21 移动语义与智能指针
  • Kimi还能对学术论文进行润色?我来教你!
  • 智汇云舟成为中煤集团中煤智能创新联盟成员单位
  • 【文心智能体大赛】迎接属于你的休闲娱乐导师!
  • AI:音乐创作的未来还是毁灭的序曲?
  • 如何通过AI进行智能日志异常检测
  • C++ GPU编程(英伟达CUDA)
  • 肾虚学习实验第T1周:实现mnist手写数字识别
  • Python | Leetcode Python题解之第162题寻找峰值
  • 定个小目标之刷LeetCode热题(26)
  • 网络爬虫设置代理服务器
  • 3、matlab单目相机标定原理、流程及实验
  • 【gdb 如何生成并查看core dump】
  • 极简短视频查看、删除应用
  • 【秋招刷题打卡】Day01-自定义排序
  • API低代码平台介绍6-数据库记录删除功能
  • 计算机基础之:硬件系统的性能评估标准
  • 高互动UI设计揭秘:动画效果如何提升用户体验
  • 探索Java异常处理的奥秘:源码解析与高级实践