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

在西安市建设工程交易中心网站上xp系统做局域网内网站

在西安市建设工程交易中心网站上,xp系统做局域网内网站,太湖县城乡建设局网站,网站建设分金手指专业十六这段代码是使用 C 编写的,演示了面向对象编程中的 多态(Polymorphism) 和 继承(Inheritance) 的概念。它定义了一个遥控器的基类 RemoteCon,然后派生出几个具体的遥控器类(如电视、音响、灯光遥…

这段代码是使用 C++ 编写的,演示了面向对象编程中的 多态(Polymorphism)继承(Inheritance) 的概念。它定义了一个遥控器的基类 RemoteCon,然后派生出几个具体的遥控器类(如电视、音响、灯光遥控器),并重写了虚函数 openUtils() 来实现不同的行为。


🧠 代码结构分析

1. 基类 RemoteCon

class RemoteCon {
public:virtual void openUtils() {cout << "遥控器的开被按下" << endl;}
};
  • 这是一个基类,表示通用遥控器。
  • 函数 openUtils() 被声明为 虚函数(virtual),这意味着它可以被子类覆盖,并且支持运行时多态。

2. 派生类:TvRemoteCon(电视遥控器)

class TvRemoteCon : public RemoteCon {
public:void openUtils() override {cout << "电视遥控器的开被按下" << endl;}void testFunc() {}
};
  • 继承自 RemoteCon
  • 覆盖了 openUtils() 方法,输出“电视遥控器”的特定信息。
  • 多余的 testFunc() 是一个空函数,没有实际作用。

3. 派生类:RoundspeakerCon(音响遥控器)

class RoundspeakerCon : public RemoteCon {
public:void openUtils() override {cout << "音响遥控器的开被按下" << endl;}
};
  • 同样继承自 RemoteCon
  • 覆盖了 openUtils(),输出“音响遥控器”的信息。

4. 派生类:LightCon(灯光遥控器)

class LightCon : public RemoteCon {
public:void openUtils() override {cout << "灯光遥控器的开被按下" << endl;}
};
  • 与上面类似,也重写了 openUtils() 方法。

5. 测试函数 test(RemoteCon&)

void test(RemoteCon& r) {r.openUtils();
}
  • 接收一个对 RemoteCon 类型的引用。
  • 在函数内部调用 r.openUtils(),根据传入的实际类型执行相应的重写方法。
  • 展示了多态的行为。

6. 主函数 main()

int main() {// 使用指针创建多个遥控器实例RemoteCon *remoteCon = new TvRemoteCon; // 多态remoteCon->openUtils();RemoteCon *remoteCon2 = new TvRemoteCon; // 多态remoteCon2->openUtils();RemoteCon *remoteCon3 = new LightCon; // 多态remoteCon3->openUtils();// 创建一个栈上的 TvRemoteCon 实例并传递给 test()TvRemoteCon tvRemote;test(tvRemote);return 0;
}
  • 使用基类指针指向不同子类的对象,这是 C++ 中实现多态的一种方式。
  • 调用 openUtils() 会根据实际对象类型来决定执行哪个版本的方法。
  • 最后,将一个 TvRemoteCon 对象以引用方式传入 test() 函数,再次展示了多态行为。

✅ 输出结果解释

程序运行后输出如下:

电视遥控器的开被按下
电视遥控器的开被按下
灯光遥控器的开被按下
电视遥控器的开被按下

💡 总结

使用到的关键知识点:

  • 继承(Inheritance)
  • 虚函数(Virtual Function)
  • 函数重写(Override)
  • 多态(Polymorphism)
  • 引用传参(Reference Parameter)

应用场景:

  • 需要统一接口但具体行为不同的情况(比如多种设备的遥控器)
  • 程序需要扩展性强,容易添加新的遥控器类型而不需要修改已有逻辑

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

#include <iostream>
using namespace std;// 基类:遥控器
class RemoteCon {
public:// 虚函数,允许子类重写virtual void openUtils() {cout << "遥控器的开被按下" << endl;}
};// 派生类:电视遥控器
class TvRemoteCon : public RemoteCon {
public:// 重写 openUtils 方法void openUtils() override {cout << "电视遥控器的开被按下" << endl;}// 一个测试函数,暂时无实际用途void testFunc() {}
};// 派生类:音响遥控器
class RoundspeakerCon : public RemoteCon {
public:void openUtils() override {cout << "音响遥控器的开被按下" << endl;}
};// 派生类:灯光遥控器
class LightCon : public RemoteCon {
public:void openUtils() override {cout << "灯光遥控器的开被按下" << endl;}
};// 用于测试多态的函数,接受 RemoteCon 引用
void test(RemoteCon& r) {r.openUtils(); // 根据实际对象调用对应方法
}int main() {// 使用基类指针指向子类对象,体现多态RemoteCon* remoteCon = new TvRemoteCon; // 电视遥控器remoteCon->openUtils(); // 输出:电视遥控器的开被按下RemoteCon* remoteCon2 = new TvRemoteCon; // 又一个电视遥控器remoteCon2->openUtils(); // 输出:电视遥控器的开被按下RemoteCon* remoteCon3 = new LightCon; // 灯光遥控器remoteCon3->openUtils(); // 输出:灯光遥控器的开被按下// 创建一个局部的电视遥控器对象TvRemoteCon tvRemote;test(tvRemote); // 输出:电视遥控器的开被按下return 0;
}

如果你有任何进一步的问题,例如如何改进设计、增加功能或优化内存管理(比如使用智能指针),欢迎继续提问!


文章转载自:

http://7Z5pQTUD.dmmrg.cn
http://bvkX67OV.dmmrg.cn
http://Q1XIhmpD.dmmrg.cn
http://kgwBXlHA.dmmrg.cn
http://EcM8sxxz.dmmrg.cn
http://pO7Uj7Fp.dmmrg.cn
http://uE2Ajb8w.dmmrg.cn
http://sjgKz2CH.dmmrg.cn
http://3gOLZ0FN.dmmrg.cn
http://nFOy7dr1.dmmrg.cn
http://gT6B4id1.dmmrg.cn
http://ansulmoZ.dmmrg.cn
http://OsErSFpE.dmmrg.cn
http://pfkj5MR3.dmmrg.cn
http://STaiWXzV.dmmrg.cn
http://wi8rcbqB.dmmrg.cn
http://t2WPmBNS.dmmrg.cn
http://rZv00680.dmmrg.cn
http://9VebmkKv.dmmrg.cn
http://kWDdWx6x.dmmrg.cn
http://wvRriJDG.dmmrg.cn
http://Zsk8B9dL.dmmrg.cn
http://sbbEIQ0b.dmmrg.cn
http://fayLb8ix.dmmrg.cn
http://INbcS6EJ.dmmrg.cn
http://xXkgIp0u.dmmrg.cn
http://x6OEVb0j.dmmrg.cn
http://MrEOWmJd.dmmrg.cn
http://TUSy2zQW.dmmrg.cn
http://llzQ4k9K.dmmrg.cn
http://www.dtcms.com/wzjs/662420.html

相关文章:

  • 百度地图 添加到网站亚马逊 网站建设
  • 中国建设注册管理中心网站asp网站授权码如何做
  • 单页网站上传教程织梦网站地图优化
  • 网站的第二域名怎么用我想承包小工程
  • 淘宝客手机网站怎么做网站建设昆山博敏
  • 做游戏数据分析的网站技术支持 合肥网站建设
  • 网站开发流程电话系统架构有哪几种
  • 怎么浏览英文网站网站下载音乐
  • 上海网站制作衫贵阳有哪些可以制作网站的公司
  • 财政网站平台建设不足wordpress选项卡
  • 什么样是权网站重高的建个微网站多少钱
  • 运城公司网站建设网站建设需要用到哪些技术
  • 南充做网站的公司软件公司网站设计
  • 中国建设信息港网站网站建设优化服务如何
  • a做爰视频免费观费网站河北衡水建设网站公司
  • wordpress建站要用模板吗吉林市网站建设优化
  • 最好的响应式网站有哪些石家庄 网站建设 15369356722
  • 潮州哪里做网站wordpress 批量换
  • html做静态网站苏州网站建设一条龙
  • wordpress获取当前网址关键词怎么优化到百度首页
  • 黑龙江省建设监理协会网站手机网站免费做app
  • 百度搜不倒公司网站wordpress时间插件下载地址
  • 青岛网站建设方案案例商城类网站总体功能策划
  • 东莞建站网站建设产品推广wordpress 外链转内链
  • 高端品牌网站建设建议公司网站建站哪个系统好用
  • 电子商务网站的建设及规划推广小程序拿佣金
  • 校园网站管理系统梅州站改造高铁站
  • 自助建站视频网站建设小程序怎么挂失
  • 嘉兴企业网站模板连锁销售网站制作
  • 深圳网站建设有免费的吗网页制作与网站建设06627