鱼C论坛

 找回密码
 立即注册
查看: 1296|回复: 0

[技术交流] C++旅程第10站----函数模板

[复制链接]
发表于 2020-5-25 22:13:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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;
}
                                                        渣渣一个求指点


本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 07:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表