码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-01-13 19:04:45      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:strong   编写   一点   实参   code   括号   部分   声明   typename   

一、模板

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

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

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

 

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

标签:strong   编写   一点   实参   code   括号   部分   声明   typename   

原文地址:https://www.cnblogs.com/southcyy/p/10263357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!