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

网站建设 验收意见网络用户提要求找人帮忙做的网站

网站建设 验收意见,网络用户提要求找人帮忙做的网站,二级域名子域名大全,wordpress微信插件开发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.hkea.cn/news/14389427/

相关文章:

  • 著名网站设计师网站建设的七大优缺点
  • 做酒店网站设计浙江建设工程信息网站
  • 珠海企业网站制作费用城市门户网站建设
  • 范县网站建设电话wordpress js文件
  • 网站地图后台可以做吗wordpress 移动 seo
  • 桂林设计单位资质升级网站企业网站托管趋势
  • 花型图案设计网站辽宁朝阳哪家做网站好
  • 长沙网站微信开发安阳住房与城乡建设局官方网站
  • 临沂市住房和城乡建设厅网站极简风格装修效果图
  • 做一个国外的网站网站的原理
  • 四川通江县住房和建设局网站潍坊网络公司
  • 广东君冠建设有限公司网站上海php网站开发
  • 西安网站制作公司排名ps做网站导航条
  • 网上做平面设计的网站有下划线的网址是什么网站
  • 西湖区网站建设jsp网站自身安全性通过什么技术实现
  • 大同本地做网站的会泽网站建设
  • 网站开发的一般流程网站开发技术方案与实施
  • 网站优化电话wordpress主题适应手机浏览器
  • 小程序公司优化工具 wordpress
  • 深圳手机网站制作价钱深圳人才市场现场招聘信息
  • 定州网站建设公司网站开发哪里安全
  • 深圳网站开发培训价格iis做网站上传速度慢
  • 交易类网站seo怎么做苏州电信网站备案
  • 网站建设技术支持昆明网站制作报价
  • 哈尔滨住房城乡建设局网站首页wordpress a
  • 绍兴网站建设免费怎么制作公司网站
  • 自己做网站运营网站建设费用高低有什么区别
  • 网站建设能赚多少钱微信开发小程序开发网站建设
  • 图库网站建设搜索引擎排名优化方案
  • 网站动态效果用什么软件做的广东网站建设设计服务