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

C++中使用类的继承机制来定义和实现基类与派生类

这段代码展示了如何在C++中使用类的继承机制来定义和实现基类与派生类。以下是代码的详细解释及注释:

#include <iostream> // 导入输入输出流库,用于标准输入输出操作using namespace std; // 使用标准命名空间,避免每次调用std::前缀// 基类 Vehicle 定义(父类)
class Vehicle { // 交通工具,车, 抽象的概念
public:string type;      // 车型string country;   // 生产国家string color;     // 颜色double price;     // 价格int numOfWheel;   // 轮子数量void run() { // 方法:车跑起来了cout << "车跑起来了" << endl;}void stop(); // 声明了一个成员函数 stop,但没有定义
};// 派生类 Bickle 定义(子类),从 Vehicle 继承
class Bickle : public Vehicle {// Bickle 类通过 public 继承了 Vehicle 类的所有公有成员// 这里没有添加新的成员或方法,直接使用父类中的成员变量和方法
};// 派生类 Roadster 定义(子类),也从 Vehicle 继承
class Roadster : public Vehicle {
public:int stateOfTop; // 新增成员变量:表示顶棚状态(假设为敞篷状态)void openTopped(); // 新声明一个成员函数,用于打开敞篷,但未定义void pdrifting();  // 另一个新声明的成员函数,可能用于漂移,同样未定义
};int main()
{Roadster ftype; // 创建一个 Roadster 类的对象 ftypeftype.type = "捷豹Ftype"; // 设置对象 ftype 的车型属性ftype.run(); // 调用从父类继承来的 run 方法Bickle bike; // 创建一个 Bickle 类的对象 bikebike.type = "死飞"; // 设置对象 bike 的车型属性bike.run(); // 同样调用从父类继承来的 run 方法return 0; // 程序正常退出
}

关键点解析

  • Vehicle 类 是一个基类,它包含了关于车辆的一些基本信息和行为(如 run 方法)。注意,stop 方法被声明但没有定义。
  • Bickle 类 和 Roadster 类 分别是从 Vehicle 类派生出来的两个子类。其中,Bickle 类没有新增任何成员变量或方法,而 Roadster 类增加了两个成员变量 stateOfTop 和两个方法声明 openTopped 和 pdrifting,但这两个方法没有定义。
  • 在 main 函数中,创建了 Roadster 和 Bickle 类的实例,并分别设置了它们的 type 属性值,然后调用了从基类继承的方法 run

注意事项

  • 由于 Vehicle 类中的 stop 方法以及 Roadster 类中的 openTopped 和 pdrifting 方法只有声明而没有定义,如果尝试调用这些方法将会导致链接错误。若要使用这些方法,则需要在类外提供相应的定义。
  • 此代码示例主要是为了展示类的继承关系,实际应用中应根据需求完善各方法的具体实现。

文章转载自:

http://j9FbiQTQ.wdshp.cn
http://5mfF8USq.wdshp.cn
http://mc4xYDzY.wdshp.cn
http://CC42Jz5P.wdshp.cn
http://v6UXvwt1.wdshp.cn
http://j6Ig6QRw.wdshp.cn
http://lQhgiLsP.wdshp.cn
http://KK03ALXf.wdshp.cn
http://jVDecrIY.wdshp.cn
http://LZzBjoxa.wdshp.cn
http://XucUM9Oc.wdshp.cn
http://ah5Q5ox5.wdshp.cn
http://SpgZxwFL.wdshp.cn
http://rdkyqTns.wdshp.cn
http://aCyS85lo.wdshp.cn
http://KOtXgN59.wdshp.cn
http://tDq61KZw.wdshp.cn
http://l4YJEPYM.wdshp.cn
http://5rzm99AA.wdshp.cn
http://uMpEIoSe.wdshp.cn
http://QbBgPZQl.wdshp.cn
http://DTaPojxR.wdshp.cn
http://n7Ua7OrU.wdshp.cn
http://Jr8jyE3r.wdshp.cn
http://Rvexd4Lz.wdshp.cn
http://lHWbAhvi.wdshp.cn
http://lPcir6XP.wdshp.cn
http://w5STZA4t.wdshp.cn
http://LI9IkZgp.wdshp.cn
http://UMbKejvk.wdshp.cn
http://www.dtcms.com/a/214935.html

相关文章:

  • OpenHarmony平台驱动使用(二),CLOCK
  • 编程日志5.21
  • Windows计算机管理:定时调用指定的可执行程序(.exe)
  • Agilent安捷伦Cary3500 UV vis光谱仪Cary60分光光度计Cary1003004000500060007000 UV visible
  • HMI仿真报错
  • 布局泰国遇网络难题?中泰跨境网络组网专线成破局关键
  • Java集合操作常见错误及规避方法
  • 【SQL server】 SQL子查询:与连接的区别、类型划分、相关与非相关子查询对比
  • Point-wise vs Pair-wise vs List-wise 简述
  • iperf3 如何测试STA 和wifi direct的 throughput
  • Vue 3 核心知识点全览
  • AI时代新词-多模态(Multimodal)
  • 使用AI生成的产品描述存在的商标侵权风险
  • 一个质谱仪的系统的发布
  • 修改 K8S Service 资源类型 NodePort 的端口范围
  • 鸿蒙OSUniApp 实现动态的 tab 切换效果#三方框架 #Uniapp
  • uniapp-商城-70-shop(3-商品列表,点击规格,进行属性选择)
  • STM32单片机系统HAL库编程实践电子书
  • 车载通信网络 --- OSI模型中物理层和数据链路层
  • AI天气预报进入“大模型时代“:如何用Transformer重构地球大气模拟?
  • 第11章 标准化和软件知识产权基础知识,多媒体、图像相关
  • [PyMySQL]
  • 鸿蒙OSUniApp 开发的图文混排展示组件#三方框架 #Uniapp
  • mysql-tpcc-mysql压测工具使用
  • WIN--文件读写
  • Python函数异常处理底层实现原理
  • OpenLayers 加载ArcGIS瓦片数据
  • Spring AI系列之Spring AI 集成 ChromaDB 向量数据库
  • CVE-2024-36467 Zabbix权限提升
  • 新质生产力引擎:营销枢纽智能体贯通全链路,AI赋能企业数字化运营高效升级!