模板
类模板
template后面加上类就是类模板了
类模板与函数模板区别
1.类模板没有自动类型推导
2.类模板在模板参数列表中可以有默认参数
1
类模板
template<class NameType, class Agetype>
class Person{
public:
NameType m_Name;
AgeType m_Age;
}
类模板不能自动推导类型,需要指定
Person<string, int> p1("孙悟空", 99);
2
template<class NameType, class Agetype = int>
class Person{
public:
NameType m_Name;
AgeType m_Age;
}
Person<string> p1("孙悟空", 99);
类型默认参数 这是在函数模板中不被允许的。
类模板中成员函数创建时机
1.普通类中的成员函数一开始就可以创建
2.类模板中的成员函数在调用时才可以创建。
类模板对象做函数参数
1.指定传入类型
2.参数模板化
3.整个类模板化
1…指定传入类型
Person<sring, int>p("孙悟空",100);
void printPerson(Person<string, int>&p)
2…参数模板化
template<class T1, class T2>
void printPerson(Person<T1, T2>&p)
3.整个类模板化
template<class T>
void printPerson(T &p)
Person<string, int> p("孙悟空",100);
printPerson(p);