c – 模板化虚拟功能

c – 模板化虚拟功能,第1张

概述我们知道C不允许在类中模板化虚函数.任何人都明白为什么会有这种限 简短回答:虚拟函数是在运行时,当从已编译的候选函数集中选择函数时,不知道是谁调用了谁.函数模板OTOH是关于在编译时从调用者端创建任意数量的不同函数(使用在编写被调用者时可能都不知道的类型).那只是不匹配. 更长的答案:虚函数是使用额外的间接(程序员的通用多用途治疗)实现的,通常实现为函数指针表(所谓的虚函数表,通常缩写为“vtab 我们知道C不允许在类中模板化虚函数.任何人都明白为什么会有这种限解决方法 简短回答:虚拟函数是在运行时,当从已编译的候选函数集中选择函数时,不知道是谁调用了谁.函数模板OTOH是关于在编译时从调用者端创建任意数量的不同函数(使用在编写被调用者时可能都不知道的类型).那只是不匹配.

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

总结

以上是内存溢出为你收集整理的c – 模板化虚拟功能全部内容,希望文章能够帮你解决c – 模板化虚拟功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1236519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存