软考程序员知识点C++语言程序设计之程序设计多态性

程序员 责任编辑:小狐狸 2016-10-10

添加老师微信

备考咨询

加我微信

摘要:下面希赛小编为大家整理的软考程序员知识点C++语言程序设计之程序设计多态性,希望能帮助学友们。

       

       >>>>>>立即点击了解程序员考试培训视频

       >>>>>>立即点击了解程序员考试教材

       >>>>>>立即点击了解程序员在线模拟考试


       下面希赛小编为大家整理的软考程序员知识点C++语言程序设计之程序设计多态性,希望能帮助学友们。具体内容如下:


       程序设计多态性

       “多态性”一词最早用于生物学,指同一种族的生物体具有不同的特性。在面向对象的程序设计理论中,多态性的定义是:同一操作作用于不同的类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果。多态是面向对象程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现。对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可能导致完全不同的行为,这种现象称为多态性。

       多态性包含编译时的多态性、运行时的多态性两大类。即:多态性也分静态多态性和动态多态性两种。

       静态多态性

       静态多态性是指定义在一个类或一个函数中的同名函数,它们根据参数表(类型以及个数)区别语义,并通过静态联编实现,例如,在一个类中定义的不同参数的构造函数。

       动态多态性

       动态多态性是指定义在一个类层次的不同类中的重载函数,它们一般具有相同的函数,因此要根据指针指向的对象所在类来区别语义,它通过动态联编实现。

       在用户不作任何干预的环境下,类的成员函数的行为能根据调用它的对象类型自动作出适应性调整,而且调整是发生在程序运行时,这就是程序的动态多态性。即,发出同样的消息被不同类型的对象接收时,有可能导致完全不同的行为。

       程序设计多态性的示例

       多态性就是多种表现形式,具体来说,可以用"一个对外接口,多个内在实现方法"表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。

       举例子说明一下:

       92BE.tmp.jpg

       在Class A的test函数前加上virtual,即在运行时多态的时候,程序输出结果为:ccc

       在Class A的test函数前不加virtual,即在编译时多态的时候,程序输出结果为:aaa

       C++的多态性:在基类的函数前面加上Virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。


       返回目录:软考程序员知识点C++语言程序设计汇总


    希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!