page contents

C++的三大特性

C++的三大特性是...

C++的三大特性:继承、多态、封装

 

1、继承

被继承的是父类(基类),继承出来的类是子类(派生类),子类拥有父类的所有的特性。

继承方式有公有继承、私有继承,保护继承。默认是私有继承

 

公有继承中父类的公有和保护成员在子类中不变,私有的在子类中不可访问。

私有继承中父类的公有和保护成员在子类中变为私有,但私有的在子类中不可访问。

保护继承中父类的公有和保护成员在子类中变为保护,但私有的在子类中不可访问。

c++语言允许单继承和多继承

优点:继承减少了重复的代码、继承是多态的前提、继承增加了类的耦合性;

缺点:继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现;父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为;如果继承下来的子类不适合解决新问题,父类必须重写或替换,那么这种依赖关系就限制了灵活性,最终限制了复用性。

 

虚继承:为了解决多重继承中的二义性问题,它维护了一张虚基类表。

 

2、多态

多态性是指对不同类的对象发出相同的消息将会有不同的实现

C++有两种多态,称为动多态(运行期多态)和静多态(编译器多态),静多态主要是通过模板来实现,而动多态是通过虚函数来实现的。即在基类中存在虚函数(一般为纯虚函数)子类通过重载这些接口,使用基类的指针或者引用指向子类的对象,就可以调用子类对应的函数,动多态的函数调用机制是执行器期才能确定的,所以他是动态的。

优点:大大提高了代码的可复用性;提高了了代码的可维护性,可扩充性;

缺点:易读性比较不好,调试比较困难; 模板只能定义在头文件中,当工程大了之后,编译时间十分的变态

 attachments-2021-03-4FQKW39n6050aecf6f3e5.jpg

3、封装

隐藏类的属性和实现细节,仅仅对外提供接口,

封装性实际上是由编译器去识别关键字publicprivateprotected来实现的,体现在类的成员可以有公有成员(public),私有成员(private),保护成员(protected)。私有成员是在封装体内被隐藏的部分,只有类体内说明的函数(类的成员函数)才可以访问私有成员,而在类体外的函数时不能访问的,公有成员是封装体与外界的一个接口,类体外的函数可以访问公有成员,保护成员是只有该类的成员函数和该类的派生类才可以访问的。

优点:隔离变化;便于使用;提高重用性;提高安全性

缺点:如果封装太多,影响效率;使用者不能知道代码具体实现。

 

重载和覆盖

定义:

重载:写一个与已有函数同名但是参数表不同的函数。

覆盖:虚函数总是在派生类中被改写,即函数名和参数都一样,只是函数的实现体不一样。。

类的关系区别:

覆盖是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系

 attachments-2021-03-RQRKHqIt6050aeab8363c.png

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-goWGw5pj62ba6e4e6925a.jpeg

  • 发表于 2021-03-16 21:13
  • 阅读 ( 598 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
小柒
小柒

1478 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章