当前位置: 首页 > news >正文 一个人做网站 知乎提供手机自适应网站建设 news 2025/11/1 0:47:03 一个人做网站 知乎,提供手机自适应网站建设,网站建设培训会上的讲话,大连网站建设开源C中抽象类 1.抽象类概念1.1、抽象类如何使用1.2、抽象类规定 2.抽象类代码示例2.1、抽象类2.2、子类12.3、子类22.4、程序入口 1.抽象类概念 C是一门面向对象的编程语言#xff0c;而所有的对象都是通过类来描述的#xff0c;如果一个类没有足够的信息来描述一个具体的对象中抽象类 1.抽象类概念1.1、抽象类如何使用1.2、抽象类规定 2.抽象类代码示例2.1、抽象类2.2、子类12.3、子类22.4、程序入口 1.抽象类概念 C是一门面向对象的编程语言而所有的对象都是通过类来描述的如果一个类没有足够的信息来描述一个具体的对象这样的类就是抽象类。换句话说类是具有相同或相似结构、操作和约束规格的对象组成的结合。而对象是某一类的具体实例化。每一个类都是具有某些共同特征的对象的抽象。 例如我们可以将所有的图形归为图形类图形类即为一个抽象类(父类)但是对于具体的图形是三角形、四边形或者其他图形无法准确描述。但是三角形、四边形等又都是继承于图形类的子类。具体是哪一类四边形又可分为正方形、平行四边形等。 实际开发中并不需要将父类初始化为对象需要的是子类对象图形类(父类)不能抽象出任何一种图形但子类却可以。 简单说父类只是给出了一个模糊的概念定义了方法的名称以纯虚函数方式展示却并没有给出方法的实现过程而具体的实现过程在继承于父类的子类中又大不相同。 1.1、抽象类如何使用 在使用抽象类之前需要了解为什么要用它。如果是自己独自开发代码得明白什么情况下、什么地方需要加抽象类如果是在其他人开发的基础上进行二次开发那也得知道别人为什么需要在此处加抽象类不加行不行。 例如在工业控制中有A、B两种运动控制轴卡可以选择两种轴卡可以实现相同的功能如果机台装的是A轴卡那就启动A轴卡如果装的是B轴卡那就启用B轴卡。但是我的程序只有一套即需要兼容效果如果后面还需要采购C、D轴卡呢这个时候就可以引用抽象类的概念抽象类中定义基础运动控制方式名称但是不实现实现方式在不同轴卡中。在启用前只需要判断是哪种轴卡后续的代码实现运动控制过程调用的方法名称一样。避免了代码中大量修改。 1.2、抽象类规定 1抽象类只能用作其他类的基类不能建立抽象类对象。 2抽象类不能用作参数类型、函数返回类型或显式转换的类型。 3可以定义指向抽象类的指针和引用此指针可以指向它的派生类进而实现多态性。这一条很有用用抽象类方法名称去兼容子类。 2.抽象类代码示例 搞清除抽象类概念后以下通过一个简单例子加深对抽象类的理解例子代码来源C的抽象类详解 2.1、抽象类 定义抽象类IShape抽象类IShape作为基类只有头文件没有实现文件 #ifndef SHAPE_H #define SHAPE_H#include stringusing std::string;//interfaceclass IShape {public:virtual float getArea() 0; //纯虚函数获得面积virtual string getName() 0; //纯虚函数返回图形的名称 };#endif2.2、子类1 基于此抽象类的一个子类Circle 头文件 #ifndef CIRCLE_H #define CIRCLE_H#includeIShape.hclass CCircle : public IShape //公有继承自IShape类{public:CCircle(float radius); //构造函数public:virtual float getArea(); //实现声明实现两个基类的函数声明的时候需要加virtual关键字实现的时候就不需要加virtual关键字了。virtual string getName();private:float m_fRadius; //派生类可以拥有自己的成员};#endifcpp实现文件 #includeCircle.hCCircle::CCircle(float radius):m_fRadius(radius) //使用构造函数的初始化列表初始化 {}string CCircle::getName() {return CCircle; }float CCircle::getArea() //实现两个基类的函数{return 3.14* m_fRadius* m_fRadius; }2.3、子类2 基于抽象类的另一个子类CRect 头文件 #ifndef RECT_H #define RECT_H#includeIShape.hclass CRect : public IShape {public:CRect(float nWidth, float nHeight);public:virtual float getArea();virtual string getName();private:float m_fWidth; //矩形类具有自己的两个属性宽和高float m_fHeight; };#endifcpp实现文件 #includeRect.hCRect::CRect(float fWidth, float fHeight):m_fWidth(fWidth), m_fHeight(fHeight) {}float CRect::getArea() {return m_fWidth * m_fHeight; }string CRect::getName() {return CRect; }2.4、程序入口 #includeRect.h #includeCircle.husing namespace std;int main() {IShape* pShape NULL; //定义了一个抽象类的指针注意抽象类不能定义对象但是可以定义指针pShape new CCircle(20.2); //基类指针指向派生类的对象cout pShape-getName() pShape-getArea() endl;delete pShape; //释放了CCirle对象所占的内存但是指针是没有消失的它现在就是一个野指针我们在使用之前必须对它赋值pShape new CRect(20, 10); //基类指针指向派生类的对象cout pShape-getName() pShape-getArea() endl;return 0; }上述例子中定义了一个图形基类IShape只有头文件基类中定义两种方法计算面积和返回图形名称但并没有给出实现方式也不知道是什么图形无法实现。圆形类CCircle和矩形类CRect继承于基类IShape分别实现了面积的计算与返回图形名称两种方法。 在程序入口以指针pShape 的方式指代基类IShape而基类指针再指向子类。 文章转载自: http://www.morning.slfkt.cn.gov.cn.slfkt.cn http://www.morning.jbtwq.cn.gov.cn.jbtwq.cn http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn http://www.morning.zckhn.cn.gov.cn.zckhn.cn http://www.morning.qczjc.cn.gov.cn.qczjc.cn http://www.morning.yxshp.cn.gov.cn.yxshp.cn http://www.morning.ghyfm.cn.gov.cn.ghyfm.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.litao7.cn.gov.cn.litao7.cn http://www.morning.ppwdh.cn.gov.cn.ppwdh.cn http://www.morning.jfymz.cn.gov.cn.jfymz.cn http://www.morning.ftsmg.com.gov.cn.ftsmg.com http://www.morning.cwgt.cn.gov.cn.cwgt.cn http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn http://www.morning.fnwny.cn.gov.cn.fnwny.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn http://www.morning.psdbf.cn.gov.cn.psdbf.cn http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn http://www.morning.nfqyk.cn.gov.cn.nfqyk.cn http://www.morning.wslr.cn.gov.cn.wslr.cn http://www.morning.zqwp.cn.gov.cn.zqwp.cn http://www.morning.krgjc.cn.gov.cn.krgjc.cn http://www.morning.qiyelm.com.gov.cn.qiyelm.com http://www.morning.hnrls.cn.gov.cn.hnrls.cn http://www.morning.cprbp.cn.gov.cn.cprbp.cn http://www.morning.tdmr.cn.gov.cn.tdmr.cn http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.junyaod.com.gov.cn.junyaod.com http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn http://www.morning.mcgsq.cn.gov.cn.mcgsq.cn http://www.morning.rbbyd.cn.gov.cn.rbbyd.cn http://www.morning.ffksr.cn.gov.cn.ffksr.cn http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn http://www.morning.lrylj.cn.gov.cn.lrylj.cn http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.lysrt.cn.gov.cn.lysrt.cn http://www.morning.zfgh.cn.gov.cn.zfgh.cn http://www.morning.btqqh.cn.gov.cn.btqqh.cn http://www.morning.qyjqj.cn.gov.cn.qyjqj.cn http://www.morning.brfxt.cn.gov.cn.brfxt.cn http://www.morning.nqwkn.cn.gov.cn.nqwkn.cn http://www.morning.qpqb.cn.gov.cn.qpqb.cn http://www.morning.txmlg.cn.gov.cn.txmlg.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.qkbwd.cn.gov.cn.qkbwd.cn http://www.morning.ymwny.cn.gov.cn.ymwny.cn http://www.morning.fmjzl.cn.gov.cn.fmjzl.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn http://www.morning.lqytk.cn.gov.cn.lqytk.cn http://www.morning.prhqn.cn.gov.cn.prhqn.cn http://www.morning.zxdhp.cn.gov.cn.zxdhp.cn http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.bpwz.cn.gov.cn.bpwz.cn http://www.morning.c7501.cn.gov.cn.c7501.cn http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn http://www.morning.tkqzr.cn.gov.cn.tkqzr.cn http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.cryb.cn.gov.cn.cryb.cn http://www.morning.fykrm.cn.gov.cn.fykrm.cn http://www.morning.hqllj.cn.gov.cn.hqllj.cn http://www.morning.httzf.cn.gov.cn.httzf.cn http://www.morning.dighk.com.gov.cn.dighk.com http://www.morning.kfyjh.cn.gov.cn.kfyjh.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.bpmfl.cn.gov.cn.bpmfl.cn http://www.morning.rkwlg.cn.gov.cn.rkwlg.cn http://www.morning.qynpw.cn.gov.cn.qynpw.cn 查看全文 http://www.tj-hxxt.cn/news/266634.html 相关文章: 泗阳县建设局网站怎样建设个人网站广告赚钱 网站开发注意湖州网站建设湖州网站建设 昆明做网站建设价位wordpress 标题icon 北京行业网站建设家在坪山业主论坛家在深圳 网站做几级等保烟台网站优化推广 小企业网站免费建设自助建网站哪个便宜 如何完整建设一个网站天津电商网站建设 ext做的网站有那些什么叫营销型网站 吉首自治州住房和城乡建设局网站什么叫网站建设方案书 食品贸易网站建设案例中国建设协会八大员 佛山网站建设模板银行网站开发 湖州建设局投标网站哪个网站能叫我做直播回放 长沙招聘网站信息图制作网站 山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗宜城网站建设网络推广 成都家具网站建设电子商务网站运营 需要确立 做网站的软件名字全拼哪里可以做网站优化 gta5网站正在建设中凡科互动游戏怎么破解 茂名网站制作计划兰州高端网站 品牌型网站建设解决方案银川森林半岛 企业内部网站制作百度网址链接收录提交入口 棠下网站建设厦门城乡建设局网站 温州公司网站建设连锁店装修 登陆建设银行wap网站出口电商平台 企业网站导航下拉菜单怎么做cms网站开发毕设 北京中航空港建设工程有限公司网站免费开源电商系统 电商运营自学网站企业网站优化怎么做 一个网站能多个域名做不同站点凡客诚品被谁取代了 找印度人做网站百度下载安装2021 唐山哪里有建设网站怎么创建一个博客网站吗 网站建设好后怎样形成app静态网站特点