C++学习记录-模板-类模板对象做函数参数

类模板实例化出来的对象作为参数向函数传参,有三种方式:

  1. 直接指定传入类型
  2. 将对象中的参数模板化
  3. 类模板化(将整个对象所在的类模板化)

示例:

创建一个类:

1
2
3
4
5
6
7
8
9
10
11
12
13
template<class T1,class T2>
class chara {
public:
T1 name;
T2 age;

public:
chara(T1 aname, T2 aage)
{
name = aname;
age = aage;
}
};

1.直接指定传入类型:

1
2
3
4
void printinfo1(chara<string,int>&p)
{
cout << p.name << " " << p.age;
}

2.参数模板化:

1
2
3
4
5
template<class T1,class T2>
void printinfo2(chara<T1, T2>& p)
{
cout << p.name << " " << p.age;
}

3.整个类模板化:

1
2
3
4
5
template<class T>
void printinfo3(T& p)
{
cout << p.name << " " << p.age;
}

实际开发中,一般应用第一种方法