我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:彩66彩票 > 多态编程语言 >

C语言的多态是否是类似于用结构指针的强制转换来实现的具体实现

归档日期:08-10       文本归类:多态编程语言      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  基本上可以说是的,因为C语言没有继承这个概念,数据结构只能用 组合 的方式而不能使用继承的方式,所以只能用指针类型强制转换;

  由于C++有继承,所以编译器会默认允许父类指针指向子类对象而不需要类型转换;

  一个int*可以直接赋给一个const int*的,但是一个const int*是不可以直接赋给一个int*的。这就需要:

  把整型(广义的)转换为指针,把指针转换为整型(广义的),把指针转换为另一个类型的指针。

  可以做任何显式的自动转换(implicit cast),也可以做那些自动转换的逆转换,但是不能消除const,volatile和对齐。

  其实a和p都是两个4bytes的地址数据,强制转换就是把数值转了了一下。

  那现在p可能是man或者woman了,不运行是实现不知道的,这就是多态的一种体现。

本文链接:http://chapmanswifts.com/duotaibianchengyuyan/909.html