【极速时时彩规律】了解C++的装、继承和多态

  • 时间:
  • 浏览:1

了解C++的装、继承和多态

  • 2019/7/1 10:56:17
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:电脑报
  • 作者:

【电脑报在线】近期重新看完一下C++,一是感觉清晰了很久,二是不言而喻若是换个高度看得话,会有不一样的体会,很久 也容易记住C++中的很久形态学 。

近期重新看完一下C++,一是感觉清晰了很久,二是不言而喻若是换个高度看得话,会有不一样的体会,很久 也容易记住C++中的很久形态学 。本文就试图将集合论中的相关知识引入到C++的封装、继承、多态上,让大家对它有个重新的认识。

从代码的高度而言,我认为计算机语言一定会可不免的防止以下一个多 问題:

 1.为了构建大型的tcp连接,还要将代码模块化。C++中,由类的封装来实现。

 2.为了减少代码的冗余,还要实现代码共享。C++中,由类的继承和多态来实现。

一、封装

C语言中,代码之间的关系一定会函数式的调用。这上端牵扯到对数据的操作,若操作的一定会局部变量,那一切都太平了。但若是有几个函数操作同一个多 非局部变量,考虑到模块化,这样就要将变量和操作变量的函数整合在同时,这很久 C++中的封装。

C++上端引入了class的概念,目的是封装数据和数据上的操作,使其成为一个多 独立的模块。若是将你这名 独立的模块(代码和数据)想象成集合,那个class A的集合为:

图1

此时若再引入一个多 class B,则有下面本身机会性,请况三、四实际上这名。

 

图2

请况一,只还要封装就足够了。防止请况二、三、四时,为了考虑代码共享,还要引入继承机制。

二、继承

大家先考虑请况二,机会A和B有公共代码(成员函数机会是成员变量),故通常考虑将公共的要素定义为class C,很久 由A、B去继承它。

图3

对于请况三、四,大家不还要演变,直接让A继承B,机会B继承A即可。

若,此时引入class D,这样请况就会繁复很久。简单期间,以请况二为扩展,考虑上加class D后的某本身。后续想要发现,请况三、四这名。

图4

此时,最合理的妙招是引入一个类,class E, class F, class G, class H,如下图。E为基类,F、G、H为一级子类、A、B、D为二级子类。

图5

很久 ,你这名 防止方案有问題:

1.若是再上加class I,class J,那繁复度就可想而知了。

2.不言而喻代码冗余是消除了,很久 引入了一个类,很久言而喻很重多,更严重得话会导致 “类泛滥”。

为了能统一防止上加的类D,大家将图四拆分成D和A,以及D和B的关系。很久 就转化为图二中的本身:请况二。

图6

图六中,class H表示D和A的公共要素,class G表示D和B的公共要素。此种解法不言而喻有代码冗余,但简单了很久,事实上,大家很久很久防止类,很久 这样防止的。

在你这名 请况下,若是上加class I,class J,都都还要转化为:新上加类和已有类之间的单独关系,即图二中的本身请况。

同时,也都还要发现,大家无法在类的继承形态学 中删剪消除代码冗余,导致 是多个类的请况下,不言而喻是比较繁复。

当大家在使用哪此蕴含继承形态学 的类的很久,考虑图二的请况三,若B继承自A,这样实际上B也都还要当A用的,这很好理解,很久 A很久 B的一要素。但若是,想让A代表B呢(实际上很久 B对象,很久 用的很久当A用),为了完美防止你这名 问題,就要引入多态了。

三、多态

前面的分析可知,类之间的关系都都还要繁复为图二的请况。图二的请况三中,A当B用(实际上只有B对象)又分为以下本身请况。第本身请况很重别扭,机会是需求决定的吧。

1.使用B中的A要素。直接使用A操作即可。

2.使用B中的非A要素。还要将A转化为B才可使用。

3.B覆盖定义A的公共接口机会成员变量。当B作为A使用的很久,A中的公共接口机会成员变量是在非A中的,实现你这名 机制的很久 多态。

C++中,基类定义虚函数,子类都还要重新实现它,以实现多态。令人奇怪的是,这样虚成员变量的概念,我不言而喻机会有以下有几个导致 :

1.没必要提供虚成员变量。父类的成员变量属于存储空间,是都还要直接用。不像函数,属于代码无法直接替换。

2.机会编译器要实现你这名 会比较繁复吧。

3.封装的概念是少暴露成员变量,只暴露接口。很久 ,好的类的设计是这样公共的成员变量的,也就不占据 虚成员变量一说了。

很久 ,从删剪性的高度而言,应该提供虚成员变量的。

四、总结

      上端的分析都还要看出,引入集合,很久 说明我试图用本身简单的妙招来描述C++的封装、继承和多态。所有的源头,一定会机会在C++中引入了封装机制,也很久 传说中的面向对象。继承和多态一定会随之而来的,顺着这条路径走下去,想要发现C++上端的变量的可视性(public, protected, private)等一定会源自于上端描述的集合之间的关系。而所有的哪此,很久 用来防止一个多 问題:模块化和代码共享。

本文出自2019-07-01出版的《电脑报》2019年第25期 A.新闻周刊 (网站编辑:zoey)

发表给力评论!看新闻,说两句。

匿名 ctrl+enter快捷提交

网站地图 | 版权声明 | 业务公司合作 | 感情的得话的得话链接 | 关于大家 | 招聘信息

报纸客服电话:1006677866 报纸客服信箱:pcw-advice@vip.sina.com 感情的得话的得话链接与公司合作 :987349267(QQ) 广告与活动:671009(QQ) 网站联系信箱:cpcw@cpcwi.com

Copyright © 1006-2011 电脑报官方网站 版权所有 渝ICP备1009040号