c++ - 类成员函数模板可以是虚拟的吗?

我听说 C++ 类成员函数模板不能是虚拟的。这是真的?

如果它们可以是虚拟的,那么使用这种功能的场景示例是什么?

最佳答案

模板都是关于编译器在编译时生成代码的。虚函数都是关于运行时系统确定在运行时调用哪个函数。

一旦运行时系统发现它需要调用模板化的虚函数,编译就完成了,编译器无法再生成适当的实例。因此,您不能拥有虚拟成员函数模板。

然而,结合多态性和模板产生了一些强大而有趣的技术,特别是所谓的 type erasure

https://stackoverflow.com/questions/2354210/

相关文章:

c++ - 我可以使用 break 退出多个嵌套的 'for' 循环吗?

c++ - 在现代 C++11/C++14/C++17 和 future 的 C++20 中枚举到字

c++ - C/C++ 中字符的大小 ('a' )

c++ - 如何实现 STL 风格的迭代器并避免常见的陷阱?

c++ - 用 C 或 C++ 为 Android 编写应用程序?

c++ - C++单元测试框架比较

c++ - 在 C 中使用移位运算符进行乘法和除法实际上更快吗?

c++ - 将二维数组传递给 C++ 函数

c++ - 为什么 C++ 编译器不定义 operator== 和 operator!=?

c++ - 单引号在 C++ 中用于多个字符时有什么作用?