青岛微网站制作wordpress修改主题头部图片
文章目录
- 共同点
 - typename特性
 - class特性
 
共同点
在定义类模板或者函数模板时,typename 和 class 关键字都可以用于指定模板参数中的类型。
template <class T>
template <typename T>
 
typename特性
C++ 允许在类内定义类型别名,且其使用方法与通过类型名访问类成员的方法相同。
class classA
{public:typedef int Container;
};template<typename T>
class classB 
{T::Container b;
};
 
在类定义不可知的时候,编译器无法知晓T::Container具体指的是一个【类型】or【类内成员(静态数据成员、静态函数等)】。
- 模板的定义与实例化是分离的,模板定义是通用的不依赖于任何特定的类型参数。编译器在模板实例化期间确定T代表classA,但在模板定义阶段,编译器无法直接知道T::Container是一个类型。
 
typename的作用就是告诉c++编译器,typename后面的字符串为一个类型名称,而不是成员函数或者成员变量
class特性
C++模板中关键字typename与class的区别
