C++三大特性

xiaoxiao2021-02-28  90

1.C++的三大特性为:继承,多态,封装

  (1)继承。一个对象直接使用另一个对象的属性和方法。 优点:1.减少重复的代码。    2.继承是多态的前提。    3.继承增加了类的耦合性。 缺点:1.继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现;    2.父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为;    3.如果继承下来的子类不适合解决新问题,父类必须重写或替换,那么这种依赖关系就限制了灵活性,最终限制了复用性。 虚继承:为了解决多重继承中的二义性问题,它维护了一张虚基类表。     (2)多态。 C++中有两种多态,称为 动多态(运行期多态) 静多态(编译期多态) ,而 静多态主要通过模板来实现,宏也是实现静多态的一种途径 动多态在C++中是通过虚函数实现的 ,即在基类中存在一些接口(一般为纯虚函数),子类必须重载这些接口。这样通过使用基类的指针或者引用指向子类的对象,就可以实现调用子类对应的函数的功能。动多态的函数调用机制是执行期才能进行确定,所以它是动态的。 接口的多种不同实现方式即为多态。可以举个例子加深记忆,比如电脑的USB接口,既可以插优盘,又可以插鼠标,USB接口就类似类的接口。 优点:1.大大提高了代码的可复用性;    2.提高了了代码的可维护性,可扩充性;         缺点: 1)易读性比较不好,调试比较困难                     2)模板只能定义在.h文件中,当工程大了之后,编译时间十分的变态          (3)封装。隐藏对象的属性和实现细节,仅仅对外提供接口和方法。 优点: 1)隔离变化;2)便于使用; 3)提高重用性; 4)提高安全性 缺点: 1)如果封装太多,影响效率; 2)使用者不能知道代码具体实现。 重载(overload)和覆盖(override): 重载:写一个与已有函数同名但是参数表不同的函数; 覆盖:虚函数总是在派生类中被改写。       
转载请注明原文地址: https://www.6miu.com/read-29605.html

最新回复(0)