5第五讲--运行时类型识别.pptVIP

  • 4
  • 0
  • 约 24页
  • 2017-04-25 发布于四川
  • 举报
5第五讲--运行时类型识别

第五讲 运行时类型识别;*; ; 和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C++中的指针或引用(Reference)本身的类型,可能与它实际代表(指向或引用)的类型并不一致。我们往往需要将一个多态指针转换为其实际指向对象的类型,就需要知道运行时的类型信息,这就产生了运行时类型识别的要求。 ; 上面是一个典型的类继承关系图,基类在上,派生类向下生长。面向对象程序设计的一般目标就是用代码管理指向基类的指针。所以如果想增加一个新类来扩充程序(比如从shape中派生出rhomboid),代码体部分并不受影响。; 在上例中,shape接口部分的虚函数是draw(),其目的就是让用户通过一个shape指针来调用draw(),draw()在所有的派生类中都被重新定义。由于它是一个虚函数,所以即使是用一个shape()型的指针来调用它,它仍然会被正确调用。创建一个特定的对象(circle、square、triangle),取其地址并把它映射到shape*(忘掉对象的实际类型),然后在程序的其它地方使用这个匿名指针——这种从多个派生类到基类的映射叫做向上映射。; 假如在编程中遇到了特殊的需求,需要知道一个一般指针的

文档评论(0)

1亿VIP精品文档

相关文档