#include<iostream>
#include<string>
using namespace std;
//类模板当作一个类的参数
//设计STL时候用到
//面试,类模板当作参数
class MyClass
{
public:
private:
};
template<class T>
class MyClass2
{
public:
T t;
MyClass2(T t1):t(t1){
}
private:
};
template<class T>
class ren //一个通用的类的类模板
{
public:
T name;
ren(T t) :name(t)
{
}
};
template<class T, template<class T> class T1 > //使用类模板当作模板参数的类
class people
{
public:
T1<T> r;
people(T1<T> t1) :r(t1)
{
}
};
void main()
{
ren<string> r("nihao");
MyClass2<ren<string>> m(r); //仅仅使用template<class T>
people<string, ren> p(r); //使用template<class T> class T1
cout << m.t.name << endl;
cout << p.r.name << endl;;
std::cin.get();
}