5.类模板

#include
#include
using namespace std;

template 
class Person
{
    public:
    Person(NameType name, AgeType age)
    {
        this->Myname = name;
        this->Myage = age;
    }

    void ShowPerson()
    {
        cout << "姓名" << this->Myname << " 年龄" << this->Myage << endl;
    }
    NameType Myname;
    AgeType Myage;
};

void test()
{
    Personp1("Tom", 10);
    Personp2("Jack", 20);
    p1.ShowPerson();
    p2.ShowPerson();
    
}

int main()
{
    test();
    return 0;
}


类模板与函数模板的区别:


    类模板没有自动类型推导的使用方式
    类模板在模板参数列表中可以有默认参数

示例:

1.类模板没有自动类型推导的使用方式

#include
#include
using namespace std;

template 
class Person
{
    public:
    Person(NameType name, AgeType age)
    {
        this->Myname = name;
        this->Myage = age;
    }

    void ShowPerson()
    {
        cout << "姓名" << this->Myname << " 年龄" << this->Myage << endl;
    }
    NameType Myname;
    AgeType Myage;
};

void test()
{
    //1.类模板没有自动类型推导的使用方式,不能写作Person p1("Tom", 10);
    Personp1("Tom", 10);//只能显示指定类型
    p1.ShowPerson();
}

int main()
{
    test();
    return 0;
}



2.  类模板在模板参数列表中可以有默认参数

#include
#include
using namespace std;

//2.类模板在模板参数列表中可以有默认参数
template 
class Person
{
    public:
    Person(NameType name, AgeType age)
    {
        this->Myname = name;
        this->Myage = age;
    }

    void ShowPerson()
    {
        cout << "姓名" << this->Myname << " 年龄" << this->Myage << endl;
    }
    NameType Myname;
    AgeType Myage;
};

void test()
{
    
    Personp1("Tom", 10);//这里可以不用写int
    p1.ShowPerson();
}

int main()
{
    test();
    return 0;
}

你可能感兴趣的:(STL学习笔记,c++,算法,开发语言)