【C++ 提高编程】- 泛型编程之模板(类型参数化)

以下给出函数模板、类模板的基本语法和代码示例

  • 函数模板详细博客参考链接
    • 语法: template<typename T> 紧跟函数定义
      • template: 声明创建模板
      • typename:表明后面的符号是一种数据类型
      • T:通用的数据类型(可用自定义的别的名)
    #include <iostream>
    using namespace std;
    
    
    template<typename T>
    void mySwap(T &a, T &b)  // 两数交换模板
    {
    	T temp = a;
    	a = b;
    	b = temp;
    }
    
    // template<> void mySwap(int &a, int &b)  // 解注释的话发生函数重载 a b 均变为 100
    // {
    // 	a = 100;
    // 	b = 100;
    // }
    
    int main()
    {
    	int a = 10;
    	int b = 20;
    
    	// 使用方法一:自动推导
    	mySwap(a, b);
    	cout << a << b << endl;  // 20 10
    
    	// 使用方法二:指定类型
    	mySwap<int>(a, b);
    	cout << a << b << endl;  // 10 20
    }
    
    • 函数模板与普通函数的区别:
      • 普通函数可以发生隐式类型转换
      • 函数模板用方法一(自动推导) 时不可以发生隐式类型转换


【黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难】

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值