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的区别
最新推荐文章于 2023-09-17 18:53:26 发布