许多著名语言中最优秀的特征,如从algo168中吸取了操作符重载机制等.由于c++语言具有与c语言一
程序设计语言是一种新的程序设计语言,人们对它许多潜在的性能(封装.继承.多态等)还没有充分 【程序编程相关:解析新一代WLAN安全技术IEEE 80】
样的高执行效率,并容易被熟悉c语言的软件人员接受,因而很快得以流行.但这种混合型面向对象的 【推荐阅读:IEEE 802? Groups - P】
能被发送到父类的对象与它的子类的对象.本文重点讨论多态性在程序设计中的应用. 【扩展信息:checkbox全选】
地理解与应用,没有充分发挥其优势.多态性是面向对象系统的重要概念之一,它指的是同样的消息
1 多态性的实现形式
从广义上说,多态性是指一段程序能够处理多种类型对象的能力.在c++语言中,这种多态性可以
通过强制多态.重载多态.类型参数化多态.包含多态4种形式来实现.类型参数化多态与包含多态统
称为一般多态性,用来系统地刻画语义上相关的一组类型.重载多态与强制多态统称为特殊多态性,
用来刻画语义上无关联的类型间的关系.
包含多态是指通过子类型化,1个程序段既能处理类型t的对象,也能够处理类型t的子类型s的对象,该程序段称为多态程序段.公有继承能够实现子类型.在包含多态中,1个对象可以被看作属于不
同的类,其间包含关系的存在意味着公共结构的存在.包含多态在不少语言中存在,如整数类型中的
子集构成1个子类型.每一个子类型中的对象可以被用在高一级的类型中,高一级类型中的所有操作可
用于下一级的对象.在c++中公有继承关系是一种包含多态,每一个类可以直接公有继承父类或多个父
类,如语句class dpublic p1,public p2{……};表示类d分别是类p1与类p2的子类型.
类型参数化多态是指当1个函数(类)统一地对若干类型参数操作时,这些类型表现出某些公共的语义特性,而该函数(类)就是用来描述该特性的.在类型参数化多态中,1个多态函数(类)必须至少带有
1个类型参数,该类型参数确定函数(类)在每次执行时操作数的类型.这种函数(类)也称类属函数(类)
.类型参数化多态的应用较广泛,被称为最纯的多态.
重载是指用同一个名字命名不同的函数或操作符.函数重载是c++对一般程序设计语言中操作符重载机制的扩充,它可使具有相同或相近含义的函数用相同的名字,只要其参数的个数.次序或类型不
一样即可.例如:
int min(int x,int y); //求2个整数的最小数 int min(int x,int y,int z); //求3个整数的最小数 int min(int n,int a[]); //求n个整数的最小数 当用户要求增加比较2个字符串大小的功能时,只需增加:char*min(char*,char*);
而原来如何使用这组函数的逻辑不需改变,min的功能扩充很容易,也就是说维护比较容易,同时也提
... 下一页