C++——模板---函数模板---类模板

一、模板

  • 模板的引入:
    • 模板的精神:类型参数化,即类型也是一种参数。
    • template所代表的泛型编程是C++语言中的重要组成部分。C++是一门强类型语言,无法像动态语言(如python)那样,编写一段通用的逻辑,可以把任意类型的变量传进去。泛型编程弥补了这一点摆脱了类型的限制,提高了代码的可重用性。
    • 模板是建立通用的与数据类型无关的算法的重要手段,可实现代码重用。
  • 函数模板的定义与声明:---函数模板实参推演
    • 定义:
      • template<模板参数表>返回值类型 函数名(函数形参表){......}//函数体
      • 模板参数主要是模板类型参数,尖括号中不能为空。模板类型参数由typename(或class)+标识符构成。表示该标识符代表一种潜在的内置或用户自定义数据类型。
    • 声明:
      • 函数模板的声明与函数声明不同,函数模板的声明必须含变量名。因为两者的编译过程不一样。函数模板必须先转换成模板函数,再进行编译。模板定义本身不参与编译,而是编译器模板的用户使用模板时提供的类型参数生成代码,再进行编译。这一过程成为模板的实例化。用户提供不同的类型参数就会实例化出不同的代码。
  • 类模板的定义与声明:---类模板实例化
    • 定义:
      • template<模板参数表> class 类名
        {
        //类定义体
        };//注意分号不可少
        
        templete<模板参数表>返回类型 类名<模板参数名表>::
        成员函数名1(形参表)
        {
        ......;//成员函数定义体
        }

         模板参数表有两种:模板类型参数和非模板类型参数。

后续吃个饭回来补充!!!!

 

猜你喜欢

转载自www.cnblogs.com/southcyy/p/10263357.html