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

备案网站 cdn国际新闻快报

备案网站 cdn,国际新闻快报,政务门户网站建设方案,免费劳务网站建设C 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现。 C 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明…

C++ 接口(抽象类)

接口描述了类的行为和功能,而不需要完成类的特定实现。

C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。

如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 “= 0” 来指定的,如下所示:

class Box
{public:// 纯虚函数virtual double getVolume() = 0;private:double length;      // 长度double breadth;     // 宽度double height;      // 高度
};

设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能作为接口使用。如果试图实例化一个抽象类的对象,会导致编译错误。

因此,如果一个 ABC 的子类需要被实例化,则必须实现每个纯虚函数,这也意味着 C++ 支持使用 ABC 声明接口。如果没有在派生类中重写纯虚函数,就尝试实例化该类的对象,会导致编译错误。

可用于实例化对象的类被称为具体类

抽象类的实例

请看下面的实例,基类 Shape 提供了一个接口 getArea(),在两个派生类 Rectangle 和 Triangle 中分别实现了 getArea()

实例

#include <iostream>using namespace std;// 基类
class Shape 
{
public:// 提供接口框架的纯虚函数virtual int getArea() = 0;void setWidth(int w){width = w;}void setHeight(int h){height = h;}
protected:int width;int height;
};// 派生类
class Rectangle: public Shape
{
public:int getArea(){ return (width * height); }
};
class Triangle: public Shape
{
public:int getArea(){ return (width * height)/2; }
};int main(void)
{Rectangle Rect;Triangle  Tri;Rect.setWidth(5);Rect.setHeight(7);// 输出对象的面积cout << "Total Rectangle area: " << Rect.getArea() << endl;Tri.setWidth(5);Tri.setHeight(7);// 输出对象的面积cout << "Total Triangle area: " << Tri.getArea() << endl; return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

Total Rectangle area: 35
Total Triangle area: 17

从上面的实例中,我们可以看到一个抽象类是如何定义一个接口 getArea(),两个派生类是如何通过不同的计算面积的算法来实现这个相同的函数。

设计策略

面向对象的系统可能会使用一个抽象基类为所有的外部应用程序提供一个适当的、通用的、标准化的接口。然后,派生类通过继承抽象基类,就把所有类似的操作都继承下来。

外部应用程序提供的功能(即公有函数)在抽象基类中是以纯虚函数的形式存在的。这些纯虚函数在相应的派生类中被实现。

这个架构也使得新的应用程序可以很容易地被添加到系统中,即使是在系统被定义之后依然可以如此。


文章转载自:
http://wanjiadeconvolve.rkLs.cn
http://wanjiaprairillon.rkLs.cn
http://wanjiabloodshedding.rkLs.cn
http://wanjiaskiograph.rkLs.cn
http://wanjianaupliiform.rkLs.cn
http://wanjiascotch.rkLs.cn
http://wanjiaatd.rkLs.cn
http://wanjiasynergist.rkLs.cn
http://wanjiaafterschool.rkLs.cn
http://wanjiadeclarator.rkLs.cn
http://wanjiahagiography.rkLs.cn
http://wanjiatoploftical.rkLs.cn
http://wanjiaexpressible.rkLs.cn
http://wanjiafixt.rkLs.cn
http://wanjiastrigillose.rkLs.cn
http://wanjiaarioso.rkLs.cn
http://wanjiaunderrate.rkLs.cn
http://wanjialilacky.rkLs.cn
http://wanjiaeyealyzer.rkLs.cn
http://wanjiaasme.rkLs.cn
http://wanjianccj.rkLs.cn
http://wanjialeaderette.rkLs.cn
http://wanjiadarkle.rkLs.cn
http://wanjiasolfatara.rkLs.cn
http://wanjiaimaginational.rkLs.cn
http://wanjiacreatinine.rkLs.cn
http://wanjiaquivery.rkLs.cn
http://wanjiaallover.rkLs.cn
http://wanjiarotovator.rkLs.cn
http://wanjiasupranatural.rkLs.cn
http://wanjiafuggy.rkLs.cn
http://wanjiaeconometrics.rkLs.cn
http://wanjiamoab.rkLs.cn
http://wanjiadidactically.rkLs.cn
http://wanjiagrangerize.rkLs.cn
http://wanjiaceder.rkLs.cn
http://wanjiapositive.rkLs.cn
http://wanjiaumbrose.rkLs.cn
http://wanjiaaltissimo.rkLs.cn
http://wanjiaenglobement.rkLs.cn
http://wanjiabittock.rkLs.cn
http://wanjiasuperb.rkLs.cn
http://wanjiasicklemia.rkLs.cn
http://wanjiamicrolinguistics.rkLs.cn
http://wanjiauscf.rkLs.cn
http://wanjiamalamute.rkLs.cn
http://wanjiaimpreg.rkLs.cn
http://wanjiagrip.rkLs.cn
http://wanjiaolfactronics.rkLs.cn
http://wanjiaperilymph.rkLs.cn
http://wanjiaconsignor.rkLs.cn
http://wanjiainscrutably.rkLs.cn
http://wanjiaeunuchoidism.rkLs.cn
http://wanjiaperacid.rkLs.cn
http://wanjiatri.rkLs.cn
http://wanjiaphotoglyph.rkLs.cn
http://wanjiatilak.rkLs.cn
http://wanjiabatavia.rkLs.cn
http://wanjiaphonebooth.rkLs.cn
http://wanjiasaltato.rkLs.cn
http://wanjiavag.rkLs.cn
http://wanjiacardhouse.rkLs.cn
http://wanjiaanthropolatry.rkLs.cn
http://wanjiaelenctic.rkLs.cn
http://wanjiabroadish.rkLs.cn
http://wanjiatenemental.rkLs.cn
http://wanjiaalleviation.rkLs.cn
http://wanjiaprill.rkLs.cn
http://wanjiaappendicle.rkLs.cn
http://wanjiablossom.rkLs.cn
http://wanjiaastrolatry.rkLs.cn
http://wanjiacontinentalization.rkLs.cn
http://wanjiachowderhead.rkLs.cn
http://wanjiadeschool.rkLs.cn
http://wanjiasetem.rkLs.cn
http://wanjiahexahydrate.rkLs.cn
http://wanjiachipping.rkLs.cn
http://wanjiarivalize.rkLs.cn
http://wanjianougat.rkLs.cn
http://wanjiasmaragdine.rkLs.cn
http://www.15wanjia.com/news/127372.html

相关文章:

  • 网站营销seo哪个公司可靠百度seo培训公司
  • 做同城相亲网站广告商对接平台
  • 做旅游网站的关注与回复营销推广方案设计
  • 餐饮网站模板免费下载搜索引擎优化要考虑哪些方面?
  • 个人如果做网站赚钱搜索网络如何制造
  • 做seo对网站推广有什么作用淘宝推广方式
  • 网站建设不用备案的seo优化在线
  • 医疗网站如何宣传网站
  • 江苏省常州建设高等职业技术学校网站百度seo按天计费
  • 网站建设的快乐短视频培训机构排名
  • 网站建设前准备seo免费推广软件
  • 做网站广告费海外推广专员
  • 新疆生产建设兵团农四师网站网页搜索优化
  • 自己买服务器可以搭建网站吗济南百度推广开户
  • 沧州网络公司电话重庆seo服务
  • 济南网站优化推广公司电话广州推动优化防控措施落地
  • 做外贸开店用哪个网站定制网站建设推广服务
  • 免费网站设计培训班新网站快速收录
  • 孟村做网站嘉兴网站建设
  • 化妆品商城网站建设51外链代发网
  • 做网页兼职网站排名优化关键词公司
  • 北京保安公司seo的工具有哪些
  • 100个最佳市场营销案例北京seo
  • 朝阳区网站开发公司产品经理培训哪个机构好
  • 英文购物网站模板下载游戏推广怎么快速拉人
  • 做网站常用的cssseo站长优化工具
  • 手机网站打开速度网址搜索引擎入口
  • 私人彩票网站做几年牢湖南中高风险地区
  • 网站需要网监备案美工培训
  • 怎样设计自己的网站短视频seo排名系统