学习目标:
- 类模板实例化出来的对象,向函数传递参数的方式
一共有三种传入方式:
**
- 指定传入的类型 —- 直接显示对象的数据类型
- 参数模板化 —- 将对象中的参数变为模板进行传递
- 整个类模板化 —- 将这个对象类型模板化进行传递
示例:
#include <iostream>
#include <string>
using namespace std;
template<typename nameType,typename ageType>
class Person{
public:
nameType m_Name;
ageType m_Age;
Person(nameType name,ageType age){
this->m_Name = name;
this->m_Age = age;
}
void getData(){
cout << "年龄:" << m_Age << endl;
cout << "姓名:" << m_Name << endl;
}
};
void printPerson01(Person<string,int>&p1){
p1.getData();
}
void test01(){
Person<string,int>p1("Tom",18);
printPerson01(p1);
}
template<typename T1,typename T2>
void printPerson02(Person<T1,T2>&p2){
p2.getData();
}
void test02(){
Person<string,int>p2("Jack",20);
printPerson02(p2);
}
template<typename T>
void printPerson03(T& p){
p.getData();
}
void test03(){
Person<string,int>p3("Mike",19);
printPerson03(p3);
}
int main(){
test01();
test02();
test03();
system("pause");
return 0;
}