这是她 发表于 2020-5-25 22:13:37

C++旅程第10站----函数模板

Be alone,that is the secret of invention;be alone ,that is when ideas are born;
                                                                                                                      模板                ---建立通用工具的模具
            C++提供两种模板机制:函数模板和类模板
                                                                                                       函数模板
             作用:
                      建立一个通用函数,其函数的返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代替

            语法:
                     template<typename T>
                     template->声明创建模板
                     typename->表明他后面的数据类型是一种数据类型,可以用class代替
                     T->通用数据类型,名称可以替换,通常为大写字母
#include<iostream>

using namespace std;

//typename可以替换成class
template<typename T>//声明一个模板,告诉编译器后面代码中紧跟着的T不要出错,T是一个通用数据类型
void Swap(T &a,T &b)
{
        T temp = a;
        a = b;
        b = temp;
}

//模板必须要确定出T的数据类型,才可以使用
template<class T>
void Swap1()
{
        cout << "Swap1!!!!!!!!!" << endl;
}

void test1()
{
        int a = 10,b = 99;
        char c = 'c';
       
        //自动类型推导
        Swap(a,b);
        //自动类型推导--必须推导出一致的数据类型T才可以使用
        Swap(a,c);//×推导不出一致的T类型
       
        //显示指定类型
        Swap<int>(a,b);
       
        cout << "a : " << a << endl;
        cout << "b : " << b << endl;
}

void test2()
{
        Swap1();//×模板不能独立使用,必须确定除T的类型
        Swap1<int>();//√利用显示指定类型的方式,给T一个类型,才可以使用模板
}

//使用模板时必须确定出通用数据类型T,并且能够推导出一致的类型
int main()
{
        test1();
       
        test2();
       
        return 0;
}                                                          渣渣一个求指点{:10_254:}


页: [1]
查看完整版本: C++旅程第10站----函数模板