c – 模板化虚拟功能

我们知道C不允许在类中模板化虚函数.任何人都明白为什么会有这种限

解决方法

简短回答:虚拟函数是在运行时,当从已编译的候选函数集中选择函数时,不知道是谁调用了谁.函数模板OTOH是关于在编译时从调用者端创建任意数量的不同函数(使用在编写被调用者时可能都不知道的类型).那只是不匹配.

更长的答案:虚函数是使用额外的间接(程序员的通用多用途治疗)实现的,通常实现为函数指针表(所谓的虚函数表,通常缩写为“vtable”).如果您正在调用函数,则运行时系统将从表中选择正确的函数.如果存在虚函数模板,则运行时系统必须使用确切的模板参数查找已编译的模板实例的地址.由于类的设计者无法提供从无限的可能参数集创建的任意数量函数模板实例,因此这不起作用.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...