C++是在C语言的基础上开发的一种面向对象编程语言,应用非常广泛。常用于系统开发,引擎开发等应用领域,支持类、封装、继承、多态等特性。C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点。
C++的三大特性:继承、多态、封装
1、继承
被继承的是父类(基类),继承出来的类是子类(派生类),子类拥有父类的所有的特性。
继承方式有公有继承、私有继承,保护继承。默认继承形式和关键字 class或strct有关。
公有继承:父类的公有和保护成员在子类中不变,但私有的在子类中不可访问。
私有继承:父类的公有和保护成员在子类中变为私有,但私有的在子类中不可访问。
保护继承:父类的公有和保护成员在子类中变为保护,但私有的在子类中不可访问。
优点:
继承减少了重复的代码、继承是多态的前提、继承增加了类的耦合性;且可以较为方便地改变父类的实现。
缺点:
继承具有入侵性(即继承必须拥有父类的所有非私有属性和方法);
父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为;
如果继承下来的子类不适合解决新问题,父类必须重写或替换,那么这种依赖关系就限制了灵活性,最终限制了复用性。
2、多态
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。
C++有两种多态,称为动多态(运行期多态)和静多态(编译器多态),静多态主要是通过模板来实现,而动多态是通过虚函数来实现的。
虚继承:为了解决多重继承中的二义性问题,它维护了一张虚基类表。
优点:大大提高了代码的可复用性;提高了了代码的可维护性,可扩充性;
缺点:易读性比较不好,调试比较困难; 模板只能定义在头文件中,当工程大了之后,编译时间十分的变态;
3、封装
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
封装性实际上是由编译器去识别关键字public、private和protected来实现的,体现在类的成员可以有公有成员(public),私有成员(private),保护成员(protected)。
私有成员是在封装体内被隐藏的部分,只有类体内说明的函数(类的成员函数)才可以访问私有成员,而在类体外的函数时不能访问的,公有成员是封装体与外界的一个接口,类体外的函数可以访问公有成员,保护成员是只有该类的成员函数和该类的派生类才可以访问的。
优点:隔离变化,保护内部数据不被随意修改;便于使用;提高重用性;提高安全性。
缺点:如果封装太多,影响效率;使用者不能知道代码具体实现。
总结:C++语言是对C语言的扩充,它既有数据抽象和面向对象的能力,而且运行性能高,加上对C语言的普及,而从使C语言到C++语言的过渡较为平滑,且C++语言与C语言的兼容程度可使数量巨大的C语言程序能方便地在C++语言环境中复用,使C++语言在短短几年内能流行。
以上就是有关C++语言的常用特性的相关内容了,想要了解更多有关c++的其它知识也可关注六星社区网站。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!