偶虽然用vc时间也有些时日了
可就是对多态性了解的不怎么深刻
大家给俺讲讲吧
郁闷ing!
可就是对多态性了解的不怎么深刻
大家给俺讲讲吧
郁闷ing!
解决方案 »
- 图像怎么做抗锯齿(反走样)处理呢 ?
- 应用软件工程师应该看什么书
- 用OpenGL如何绘制扇形体(急)
- HOOK RECV 现能实现过滤,修改.如何伪造新的数据报
- m_button.Create(LPCTSTR("aaaaaaaaaaaaa"),WS_CHILD,rect,this,ID_INDICATOR_BUTTON);乱码问题
- 定义Socket对象老报错,大家帮看一下!
- 请高手指点:对话框显示位图背景能控制吗??
- COleDataSource对象放到剪贴板后,用自己delete pOleDataSource吗?
- snmp++,get-next 时连续发出两条一样的消息是什么原因?
- 菜鸟问题!,
- 如何编程改变对话框中空间的TAB顺序?
- 哪位帮忙介绍几本对ATL讲解得比较好的书?
关键词:C++语言 多态性 类 虚函数 C++是以C语言为基础,支持数据抽象和面向对象的程序设计语言。C++对C语言的扩充部分汲取了许多著名语言中最优秀的特征,如从Algo168中吸取了操作符重载机制等。由于C++语言具有与C语言一样的高执行效率,并容易被熟悉C语言的软件人员接受,因而很快得以流行。但这种混合型面向对象的程序设计语言是一种新的程序设计语言,人们对它许多潜在的性能(封装、继承、多态等)还没有充分地理解和应用,没有充分发挥其优势。多态性是面向对象系统的重要概念之一,它指的是同样的消息能被发送到父类的对象和它的子类的对象。本文重点讨论多态性在程序设计中的应用。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*);
详见:
http://www.powerba.com/develop/c&c++/article/20001029010.htm
http://expert.csdn.net/Expert/topic/2493/2493152.xml?temp=.7416193
赶快给分!
接分!
呵呵1