学习目标:

    • 类模板实例化出来的对象,向函数传递参数的方式

    一共有三种传入方式:
    **

    1. 指定传入的类型 —- 直接显示对象的数据类型
    2. 参数模板化 —- 将对象中的参数变为模板进行传递
    3. 整个类模板化 —- 将这个对象类型模板化进行传递

    示例:

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. template<typename nameType,typename ageType>
    5. class Person{
    6. public:
    7. nameType m_Name;
    8. ageType m_Age;
    9. Person(nameType name,ageType age){
    10. this->m_Name = name;
    11. this->m_Age = age;
    12. }
    13. void getData(){
    14. cout << "年龄:" << m_Age << endl;
    15. cout << "姓名:" << m_Name << endl;
    16. }
    17. };
    18. void printPerson01(Person<string,int>&p1){
    19. p1.getData();
    20. }
    21. void test01(){
    22. Person<string,int>p1("Tom",18);
    23. printPerson01(p1);
    24. }
    25. template<typename T1,typename T2>
    26. void printPerson02(Person<T1,T2>&p2){
    27. p2.getData();
    28. }
    29. void test02(){
    30. Person<string,int>p2("Jack",20);
    31. printPerson02(p2);
    32. }
    33. template<typename T>
    34. void printPerson03(T& p){
    35. p.getData();
    36. }
    37. void test03(){
    38. Person<string,int>p3("Mike",19);
    39. printPerson03(p3);
    40. }
    41. int main(){
    42. test01();
    43. test02();
    44. test03();
    45. system("pause");
    46. return 0;
    47. }