我听说 C++ 类成员函数模板不能是虚拟的。这是真的?
如果它们可以是虚拟的,那么使用这种功能的场景示例是什么?
最佳答案
模板都是关于编译器在编译时生成代码的。虚函数都是关于运行时系统确定在运行时调用哪个函数。
一旦运行时系统发现它需要调用模板化的虚函数,编译就完成了,编译器无法再生成适当的实例。因此,您不能拥有虚拟成员函数模板。
然而,结合多态性和模板产生了一些强大而有趣的技术,特别是所谓的 type erasure 。
关于c++ - 类成员函数模板可以是虚拟的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354210/