数据类型表
用户经由模板参数传递到模板的数据类型只在模板中有效,为模板所私有且数目种类有限。限制了模板之间的协作。
——类似于类之间要互相协作时,里面的数据成员都要是public,对互相公开所以可以方便使用。
故在同一个泛型系统内部模板应该公开私有数据类型。即用typedef完成命名的统一同时为公共数据类型。
- 类的数据类型成员
数据类型成员就是在类里面使用typedef
声明的类型别名。
typedef long double LD
这里LD就是一个类型别名。
既然类型别名是类的成员,那么就可以赋予相应的访问属性。具有public
属性的就成为类外模块可以使用的共有类型成员。
template<typename T>
class MyTraits{
public:
typedef T Test1;
}
int main(){
//为区分静态成员和类型成员,类型成员前面要加上typename关键字区别
typename MyTraits<int>::Test1 a=100;
//输出100,a为int类型
cout<<a<<endl;
为区