C++语言基础:模板——函数模板和类模板

本文详细介绍了C++中的模板概念,包括函数模板和类模板的语法、使用方式、注意事项及局限性。重点讲解了函数模板的自动类型推导、显式指定类型、模板的局限性与重载,以及类模板的成员函数创建时机、对象作为函数参数、继承和友元函数的处理。最后,通过案例展示了模板在实际编程中的应用。
摘要由CSDN通过智能技术生成
  • 1、模板的概念
    • 1.1、模板就是建立通用的工具,大大提高复用性
    • 1.2、C++的另一种编程思想称为泛型编程,主要利用的技术就是模板
      • C++提供两种模板机制:函数模板类模板
  • 2、函数模板
    • 2.1 函数模板语法
      • 函数模板作用
        • 建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
      • 语法:
        • 语法定义:
          • 1. template<typename T>
          • 2. 函数声明或定义
        • 语法定义的解释:
          • 1. template——声明创建模板
          • 2. typename——表明其后面的符号是一种数据类型,可以用class代替
          • 3. T——通用的数据类型,名称可以替换,通常为大写字母
      • 使用函数模板的两种方式:
        • 1. 自动类型推导
        • 2. 显式指定类型
      • 示例(交换函数)
        • void swapInt(int& a, int& b) { // 普通的交换函数
              int temp = a;
              a = b;
              b = temp;
          }
          
          template <typename T> // 声明模板
          void swapNum(T& a, T& b) { // 模板类型的交换函数
              T temp = a;
              a = b;
              b = temp;
          }
          
          void test01() {
              int a = 10;
              int b = 20;
              swapNum(a, b); // 1. 自动类型推导
              swapNum<int>(a, b); // 2. 显示指定类型
              cout << "a= " << a << " b = " << b << endl;
          }

    • 2.2 函数模板注意事项
      • 注意事项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值