1,一般情况下typename和class可以互换。
2,但是当需要表示某标识符是类型的时候用只能用typename而不能用class。
当要获得类的成员类型时,必须用typename
比如
template <typename T>
class MyClass {
typename T::SubType * ptr;
};
有了typeanme,SubType就被当成了T中定义的一个类型;
如果这里没有typename,SubType就会被当成一个static member,而 * 就被当成乘法了。
typename和class的区别
最新推荐文章于 2025-10-24 00:00:00 发布
本文详细解释了在C++中使用typename和class关键字的差异,特别关注于如何正确地表示某标识符为类型以及如何获取类的成员类型。
3735

被折叠的 条评论
为什么被折叠?



