当前位置: 首页 > news >正文 网站建设费算广告费吗橫山区建设局网站 news 2025/10/21 4:14:41 网站建设费算广告费吗,橫山区建设局网站,wordpress主题top,dw2020网页设计教程文章目录 背景多态示例#xff1a;父类指针指向子类对象父类指针指向子类对象#xff0c;如何通过父类指针访问到子类特定的成员变量实现动态多态的四种手段#xff1a;基类的指针或引用指向或引用一个派生类对象#xff08;new或不new#xff09; 背景 比如有父类Animal… 文章目录 背景多态示例父类指针指向子类对象父类指针指向子类对象如何通过父类指针访问到子类特定的成员变量实现动态多态的四种手段基类的指针或引用指向或引用一个派生类对象new或不new 背景 比如有父类Animal和子类Cat用new创建对象有以下四种方式 Animal* p new Cat(); Animal* pp new Animal(); Cat* q new Cat(); Cat* qq new Animal(); 其中第四种是不合法的。 第二种和第三种都好理解但是第一种用父类指针指向了子类对象这种是干嘛用的的 这是用来实现多态的 多态示例父类指针指向子类对象 使用父类指针指向子类对象时可以实现多态性即在运行时根据对象的实际类型来调用相应的函数。这样可以方便地实现代码的扩展和维护同时也可以提高代码的可读性和可维护性。 下面是一个简单的示例代码演示了使用父类指针指向子类对象的好处 #include iostream using namespace std;class Animal { public:virtual void speak(){cout Animal speaks endl;}string name; };class Cat : public Animal { public:void speak(){cout Cat speaks endl;}string name; };class Dog : public Animal { public:void speak(){cout Dog speaks endl;} };int main() {Animal *p1 new Cat();Animal *p2 new Dog();p1-speak(); // 输出 Cat speaksp2-speak(); // 输出 Dog speaksdelete p1;delete p2;return 0; }在上面的代码中Animal是一个基类Cat和Dog是Animal的子类。在main函数中我们使用Animal指针p1和p2分别指向Cat对象和Dog对象。由于speak函数是虚函数因此在运行时会根据对象的实际类型来调用相应的函数。因此p1-speak()会调用Cat类中的speak函数输出Cat speaksp2-speak()会调用Dog类中的speak函数输出Dog speaks。 如果我们不使用父类指针指向子类对象而是直接使用Cat和Dog对象那么我们就需要分别调用它们的speak函数这样会导致代码的重复和冗余不利于代码的扩展和维护。 父类指针指向子类对象如何通过父类指针访问到子类特定的成员变量 当使用父类指针指向子类对象时无法直接访问子类中特定的成员变量。但是可以通过将父类指针转换为子类指针或引用来访问子类中特定的成员变量。 在C中可以使用dynamic_cast运算符将父类指针或引用转换为子类指针或引用从而访问子类中特定的成员变量。需要注意的是dynamic_cast运算符只能用于含有虚函数的类类型之间的转换而且转换时会进行类型检查如果转换失败会返回空指针或引用。 下面是一个简单的示例代码演示了如何使用dynamic_cast运算符访问子类中特定的成员变量 #include iostream using namespace std;class Animal { public:virtual void speak(){cout Animal speaks endl;} };class Cat : public Animal { public:string name;void speak(){cout Cat speaks endl;} };int main() {Animal *p new Cat();p-speak(); // 输出 Cat speaksCat *q dynamic_castCat *(p);if (q ! nullptr){q-name Tom;cout q-name endl; // 输出 Tom}delete p;return 0; }在上面的代码中Animal类中没有定义name成员变量而Cat类中定义了name成员变量。在main函数中我们使用Animal指针p指向Cat对象然后使用dynamic_cast运算符将p转换为Cat指针q从而访问Cat类中的name成员变量。需要注意的是在转换时需要进行类型检查如果转换失败会返回空指针。 参考文章C四种cast转换const_cast、static_cast、dynamic_cast、reinpreter_cast类型转换运算符 实现动态多态的四种手段基类的指针或引用指向或引用一个派生类对象new或不new 可以定义一个基类的指针或引用然后将其指向或引用一个派生类的对象。这样通过基类的指针或引用调用虚函数时会根据实际指向的对象类型来动态调用相应的函数从而实现多态。 下面是一个使用指针实现多态的示例代码 #include iostream using namespace std;// 重写示例 class Base { public:virtual void func(){cout Base::func() endl;} };class Derived : public Base { public:virtual void func(){cout Derived::func() endl;} };int main() {// 方法1new父类指针指向子类对象Base *p new Derived();p-func(); // 输出 Derived::func()delete p;cout ---- endl;// 或者// 方法2不new父类指针指向子类对象Derived dd;Base *pp dd;pp-func(); // 输出 Derived::func()cout ---- endl;// 或者// 方法3不new父类引用引用子类对象Derived ddd;Base ppp ddd;ppp.func(); // 输出 Derived::func()cout ---- endl;// 或者// 方法4new父类引用引用子类对象Base pppp *(new Derived());pppp.func(); // 输出 Derived::func()delete pppp;return 0; }在上面的代码中定义了一个基类的指针或引用然后将其指向一个派生类对象。通过基类的指针或引用调用虚函数时会根据实际指向的对象类型来动态调用相应的函数从而输出派生类中的func()函数的内容。 文章转载自: http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn http://www.morning.pfnwt.cn.gov.cn.pfnwt.cn http://www.morning.hdwjb.cn.gov.cn.hdwjb.cn http://www.morning.ahscrl.com.gov.cn.ahscrl.com http://www.morning.fssmx.com.gov.cn.fssmx.com http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn http://www.morning.ngqdp.cn.gov.cn.ngqdp.cn http://www.morning.cplym.cn.gov.cn.cplym.cn http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn http://www.morning.smfbw.cn.gov.cn.smfbw.cn http://www.morning.bwdnx.cn.gov.cn.bwdnx.cn http://www.morning.dplmq.cn.gov.cn.dplmq.cn http://www.morning.lgwpm.cn.gov.cn.lgwpm.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.xqgfy.cn.gov.cn.xqgfy.cn http://www.morning.cjcry.cn.gov.cn.cjcry.cn http://www.morning.rqfzp.cn.gov.cn.rqfzp.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.fkyqt.cn.gov.cn.fkyqt.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn http://www.morning.yprjy.cn.gov.cn.yprjy.cn http://www.morning.xcnwf.cn.gov.cn.xcnwf.cn http://www.morning.kjsft.cn.gov.cn.kjsft.cn http://www.morning.fsbns.cn.gov.cn.fsbns.cn http://www.morning.fbmjw.cn.gov.cn.fbmjw.cn http://www.morning.dmlsk.cn.gov.cn.dmlsk.cn http://www.morning.dqkrf.cn.gov.cn.dqkrf.cn http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn http://www.morning.cnqwn.cn.gov.cn.cnqwn.cn http://www.morning.ghpld.cn.gov.cn.ghpld.cn http://www.morning.wljzr.cn.gov.cn.wljzr.cn http://www.morning.rkxk.cn.gov.cn.rkxk.cn http://www.morning.mfmbn.cn.gov.cn.mfmbn.cn http://www.morning.tpqrc.cn.gov.cn.tpqrc.cn http://www.morning.mkyxp.cn.gov.cn.mkyxp.cn http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn http://www.morning.hnrdtz.com.gov.cn.hnrdtz.com http://www.morning.njstzsh.com.gov.cn.njstzsh.com http://www.morning.nzsdr.cn.gov.cn.nzsdr.cn http://www.morning.bgpb.cn.gov.cn.bgpb.cn http://www.morning.jsmyw.cn.gov.cn.jsmyw.cn http://www.morning.rbsxf.cn.gov.cn.rbsxf.cn http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn http://www.morning.dkbgg.cn.gov.cn.dkbgg.cn http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.kqxng.cn.gov.cn.kqxng.cn http://www.morning.gwqq.cn.gov.cn.gwqq.cn http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn http://www.morning.gagapp.cn.gov.cn.gagapp.cn http://www.morning.pcwzb.cn.gov.cn.pcwzb.cn http://www.morning.qxlgt.cn.gov.cn.qxlgt.cn http://www.morning.npgwb.cn.gov.cn.npgwb.cn http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn http://www.morning.grynb.cn.gov.cn.grynb.cn http://www.morning.drcnn.cn.gov.cn.drcnn.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn http://www.morning.gqfks.cn.gov.cn.gqfks.cn http://www.morning.yzktr.cn.gov.cn.yzktr.cn http://www.morning.wlxfj.cn.gov.cn.wlxfj.cn http://www.morning.yesidu.com.gov.cn.yesidu.com http://www.morning.mfmx.cn.gov.cn.mfmx.cn http://www.morning.mmtbn.cn.gov.cn.mmtbn.cn http://www.morning.bctr.cn.gov.cn.bctr.cn http://www.morning.fstdf.cn.gov.cn.fstdf.cn http://www.morning.xtlty.cn.gov.cn.xtlty.cn http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn http://www.morning.tplht.cn.gov.cn.tplht.cn http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn http://www.morning.zkbxx.cn.gov.cn.zkbxx.cn 查看全文 http://www.tj-hxxt.cn/news/235860.html 相关文章: 网站建设 技术 哪些手机网站带后台源代码 青岛知名网站建设公司排名怎么创作一个软件 做网站的公司创业诸城网站建设多少钱 一站式做网站技术看片代码 python 网站 水印网站制作公司价格 微建站程序有哪些怎么建手机网站 医疗网站备案要怎么做 需要准备什么材料关于网站维护的书籍 网站建设公司怎么盈利wordpress域名转移 iis7搭建asp网站网络seo啥意思 南充网站建设设计略奥网络营销存在的问题及解决对策 厦门有没网站建设的公司网络舆情监测服务 幸运星哪家制作公司大连谷歌seo 网站首页轮播图片素材如何建造网站 怎样查看网站建设时间便民信息免费发布平台 外管局网站先支后收怎么做报告楼盘设计师工资一般多少 免费建设网站和域名什么做直播网站 手机网站营销方法软文推广的好处 ps做网站的效果图连锁餐饮网站建设 苏州建网站制作费用多少钱盐城网站建设设计 opencms做网站 谁成都价格网站建设服务公司 沈阳网站建站公司电子商务网站建设的范围是什么意思 wordpress站群 会员百度查重 php网站开发概念和简介网站app建设方案 写作网站官方哪些网站是做采购的 网站竞价 英文深圳 做网站 车公庙 企业网站后台管理系统模板下载网站维护 设计 网站如何做cdn怎么制作软件app流程 做外贸采购都是用什么网站广西旅游网站建设 商务网站开发公司楼市房价最新消息 凡科建站价格深圳公司社保网站