C++ 函数模板

举报
AI浩 发表于 2021/12/23 00:33:42 2021/12/23
1.2k+ 0 0
【摘要】 定义    函数模板是一种特殊的函数,可以使用不同的类型进行调用,对于功能相同的函数,不需要重复编写代码,并且函数模板与普通函数看起来很类似,区别就是类型可以被参数化 函数模板定义形式 template    < 类型形式参数表 >  &...

定义   

函数模板是一种特殊的函数,可以使用不同的类型进行调用,对于功能相同的函数,不需要重复编写代码,并且函数模板与普通函数看起来很类似,区别就是类型可以被参数化

函数模板定义形式

template    < 类型形式参数表 >   

类型形式参数的形式为:

                     typename T1 ,  typename T2 , …… , typename Tn

或     class T1 ,  class T2 , …… , class Tn  

    函数模板通过templatetypename两个关键字来定义,如下:

//template 告诉C++编译器 我要开始泛型编程了 .看到T, 不要随便报错

template <typename T>

void myswap(T &a, T &b)

{

    T c = 0;

    c = a;

    a = b;

    b = c;

    cout << "hello ....我是模板函数 欢迎 calll 我" << endl;

}

template关键字用于声明开始泛型编程,typename关键字用于声明泛型类型。

调用

调用函数模板的两种形式:

                   1、显示调用如:myswap<float>(a, b);        

                  2、自动数据类型推导如:myswap(a, b);  

举例:

#include <iostream>

using namespace std;

template <typename T>

void myswap(T &a, T &b)

{

    T c = 0;

    c = a;

    a = b;

    b = c;

    cout << "hello ....我是模板函数 欢迎 calll 我" << endl;

}

int main()

{

    int x = 10;

    int y = 20;

    myswap<int>(x, y); //1 函数模板 显示类型 调用

    myswap(x, y);  //2 自动类型 推导

    printf("x:%d y:%d \n", x, y);

}

运行结果:

文章来源: wanghao.blog.csdn.net,作者:AI浩,版权归原作者所有,如需转载,请联系作者。

原文链接:wanghao.blog.csdn.net/article/details/108976508

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。