一.类模板当做模板的参数
#include<iostream>
#include<string>
using namespace std;
//类模板当做一个类的参数
template<class T>
class ren //一个通用的类模板
{ public:
T name;
ren(T t):name(t)
{
}
};
template<template<class T>class T1>
class people
{
public:
T1<string> str;
T1<int> num = 10;//类模板
people(T1<string> &t1) :str(t1)
{
cout << typeid(t1).name() << endl;
cout << typeid(T1).name() << endl;
cout << t1.name << endl;
}
people()
{
}
};
void main()
{
ren<string> ren1("hello");
cout << ren1.name << endl;
people<ren> people1(ren1);//传入模板类进行初始化
cout << people1.str.name<< endl;
cout << people1.num.name<< endl;
cin.get();
}
二.类模板与static变量
类模板的static变量根据类型进行计数。不同类型的静态成员变量,地址不一样相同类型的静态成员变量地址一样,其中私有静态变量通过静态成员函数进行访问。
静态函数类型相同的共享内存,类型不相同的不共享内存&#x