天天看點

類模闆當作一個類模闆的模闆參數

#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();



}