Q: C++ 模板用 typename 和 class 有啥区别?
A: 无论使用 class 还是 typename 声明类型参数,效果都是相同的,选择使用哪个关键字主要取决于个人或团队的偏好。一般来说,较为常见的做法是在声明类模板时使用 class,而在嵌套类型的声明或模板内部使用时则使用 typename。
早期的 C++ 标准将 class 用作声明类型参数的关键字。为了支持模板内嵌套类型,C++98 标准引入了 typename, 同时为了兼容性,class 作为模板类型声明的关键字继续保留。
|
|