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

网站设计标准字体图片编辑器在线

网站设计标准字体,图片编辑器在线,吉林seo排名公司,做色网站这段 C 代码演示了 抽象类(Abstract Class) 和 多态(Polymorphism) 的使用,它定义了一个表示教师的抽象基类 Teacher,并派生出两个具体的子类:EnglishTeacher(英语老师)和…

这段 C++ 代码演示了 抽象类(Abstract Class)多态(Polymorphism) 的使用,它定义了一个表示教师的抽象基类 Teacher,并派生出两个具体的子类:EnglishTeacher(英语老师)和 ProTeacher(编程老师),每个子类都实现了从父类继承来的纯虚函数。


🧠 代码结构分析

1. 抽象类 Teacher

class Teacher {
public:string name;string shool;   // 拼写错误,应为 schoolstring major;virtual void goInClass() = 0;virtual void startTeaching() = 0;virtual void afterTeaching() = 0;
};
  • 这是一个抽象类,因为包含了至少一个 纯虚函数(pure virtual function)
  • 纯虚函数:
    • goInClass()startTeaching()afterTeaching() 都是纯虚函数(= 0 表示没有实现,必须由子类实现)。
  • 不能直接实例化这个类的对象(例如:Teacher t; 是非法的)。
  • 成员变量包括 nameshool(应为 school)、major,但这些成员在主函数中并没有被赋值或使用。

2. 子类 EnglishTeacher

class EnglishTeacher : public Teacher {
public:void goInClass() override {cout << "英语老师开始进入教室" << endl;}void startTeaching() override {cout << "英语老师开始教学" << endl;}void afterTeaching() override {}
};
  • 继承自 Teacher
  • 实现了三个纯虚函数。
  • afterTeaching() 是空实现(无输出)。

3. 子类 ProTeacher

class ProTeacher : public Teacher {
public:void goInClass() override {cout << "编程老师开始进入教室" << endl;}void startTeaching() override {cout << "编程老师开始撸代码了,拒绝读PPT" << endl;}void afterTeaching() override {cout << "编程老师下课后手把手教x学员写代码" << endl;}
};
  • 同样继承自 Teacher
  • 所有方法都有具体实现,特别是 afterTeaching() 有详细的输出信息。

4. 主函数 main()

int main()
{// Teacher t; // 抽象类不能实例化,这行被注释掉了EnglishTeacher e;e.goInClass(); // 调用英语老师的 goInClass()ProTeacher t;t.startTeaching(); // 编程老师开始教学t.afterTeaching(); // 编程老师下课后的动作// 使用抽象类指针指向 ProTeacher 对象,展示多态Teacher* teacher = new ProTeacher;teacher->startTeaching(); // 调用 ProTeacher 的 startTeaching()delete teacher; // 记得释放内存!return 0;
}
  • 创建了 EnglishTeacher 和 ProTeacher 的对象,并分别调用了它们的方法。
  • 展示了多态:通过基类指针调用子类实现的方法。
  • 注意:动态分配内存后应当使用 delete 释放,避免内存泄漏。

✅ 输出结果解释

程序运行后输出如下:

英语老师开始进入教室
编程老师开始撸代码了,拒绝读PPT
编程老师下课后手把手教x学员写代码
编程老师开始撸代码了,拒绝读PPT

💡 总结

使用到的关键知识点:

  • 抽象类(Abstract Class)
  • 纯虚函数(Pure Virtual Function)
  • 函数重写(Override)
  • 多态(Polymorphism)
  • 堆内存管理(new / delete)

📝 加上完整注释的代码如下:

#include <iostream>
using namespace std;// 抽象类 Teacher,包含三个纯虚函数
class Teacher {
public:string name;string shool;   // 应为 school,拼写错误string major;// 纯虚函数,表示不同阶段的教学行为virtual void goInClass() = 0;virtual void startTeaching() = 0;virtual void afterTeaching() = 0;
};// 英语老师类,继承自 Teacher
class EnglishTeacher : public Teacher {
public:// 实现进入教室的动作void goInClass() override {cout << "英语老师开始进入教室" << endl;}// 实现教学过程void startTeaching() override {cout << "英语老师开始教学" << endl;}// 教学结束后的操作(空实现)void afterTeaching() override {}
};// 编程老师类,继承自 Teacher
class ProTeacher : public Teacher {
public:// 实现进入教室的动作void goInClass() override {cout << "编程老师开始进入教室" << endl;}// 实现教学过程void startTeaching() override {cout << "编程老师开始撸代码了,拒绝读PPT" << endl;}// 实现课后辅导void afterTeaching() override {cout << "编程老师下课后手把手教x学员写代码" << endl;}
};int main()
{// Teacher t; // 抽象类不能直接实例化,该行被注释// 创建英语老师对象并调用其方法EnglishTeacher e;e.goInClass(); // 输出:英语老师开始进入教室// 创建编程老师对象并调用其方法ProTeacher t;t.startTeaching(); // 输出:编程老师开始撸代码了,拒绝读PPTt.afterTeaching(); // 输出:编程老师下课后手把手教x学员写代码// 多态:使用 Teacher 基类指针指向 ProTeacher 对象Teacher* teacher = new ProTeacher;teacher->startTeaching(); // 输出:编程老师开始撸代码了,拒绝读PPT// 释放动态分配的内存delete teacher;return 0;
}

如果你希望进一步完善这个程序,比如添加构造函数设置 nameschoolmajor,或者使用智能指针来自动管理内存,请告诉我,我可以继续帮你优化!


文章转载自:

http://PiUJqADR.hrhwn.cn
http://vDxT8jW4.hrhwn.cn
http://q0wyBVYB.hrhwn.cn
http://VnTlSmsq.hrhwn.cn
http://ioYi1mIZ.hrhwn.cn
http://nN6cGNrD.hrhwn.cn
http://TV6wv3et.hrhwn.cn
http://6k7NytvV.hrhwn.cn
http://MuJA6q5t.hrhwn.cn
http://vUpdzWlk.hrhwn.cn
http://iDTtGTVP.hrhwn.cn
http://viAo01C0.hrhwn.cn
http://b8oN20vb.hrhwn.cn
http://hCo4sGHr.hrhwn.cn
http://6fJy5z35.hrhwn.cn
http://uayy1WRV.hrhwn.cn
http://BqoVz9Fr.hrhwn.cn
http://eaxbLjQk.hrhwn.cn
http://9pZVwnTv.hrhwn.cn
http://Rm4zaHxc.hrhwn.cn
http://DiJwQUx0.hrhwn.cn
http://5xqAkzI2.hrhwn.cn
http://CAGq9G37.hrhwn.cn
http://tCGOZEEN.hrhwn.cn
http://T0C2BoFy.hrhwn.cn
http://Yn7cMez7.hrhwn.cn
http://s4FLppQF.hrhwn.cn
http://bv4vI2mz.hrhwn.cn
http://KcyMpods.hrhwn.cn
http://wkQbpxkz.hrhwn.cn
http://www.dtcms.com/wzjs/624115.html

相关文章:

  • 用心做电影的网站网站开发 顺德
  • 网站被k后是怎样的宿迁市建设局网站首页
  • 长沙网站seo厂家网站维护要多久
  • 口碑好的网站建设网络公司做机场网站
  • 网站模糊背景wordpress 支持vr吗
  • 自动采集更新的网站wordpress建筑业企业服务平台
  • 深圳市网站备案摄影后期教程网站
  • 成都网站平面设计国内外包平台
  • 菏泽网站建设哪家好制作图片的软件是
  • 如何把网站主关键词做到百度首页做家乡网站代码
  • 不良网站正能量免费下载解除网站开发合同 首付款是否退
  • 电脑制作ppt的软件西安seo公司哪家好
  • 长沙网站制作公司推荐免费商城建站平台
  • 网站建设窗口框架湖南网站建设磐石网络口碑好
  • 有什么网站可以做电子wordpress 轮播
  • 常州网站建设外包wordpress留言板源码
  • 肇庆网站建设方案vrview wordpress
  • 做图文链接网站购物网站推广方案
  • 站酷网手机版化妆品网站建设公司
  • 做网站几个步骤河南企业建站系统信息
  • 微网站平台怎样做网站盘锦做网站谁家好
  • 燃气行业网站建设方案重庆森林为什么不能看
  • 网站技术建设方案个人网站设计师
  • 二级网站排名做不上去茶叶网站建设要求
  • 合肥做网站价格是多少网络门店管理系统
  • 网站特效代码html免费投票网站制作
  • 广东做网站公司有哪些linux增加网站
  • 站库设计网站官网成都编程培训机构排名
  • 网站页面设计稿设计师网络平台
  • 微信网站合同网站的开发流程