zoukankan      html  css  js  c++  java
  • 函数模板

    函数模板

    1.定义

    函数模板是通用的函数描述,也就是说,它们是使用泛型来定义函数。由于模板允许泛型的方式编写程序,一次有时也被称为通用编程

    2.一般形式

    template <typename AnyType> return_type FuncName(args...)
    {}
    

    3.重载的模板

    重载的模板和普通函数重载类似。
    

    4.函数模板的显示具体化

    1.函数具体化,形式:

    template<> return_type FuncName<confirm_type>() 
    

    例子:

    template<>void Swap<int>(int,int)
    

    5.函数调用优先级

    普通函数(非模板函数)优于具体化模板函数, 具体化函数优于模板函数

    6.C++11添加了关键字decltype

    decltype可以通过变量来推导变量的类型。所以在模板中解决了模板函数和普通函数返回时类型的不确定性。

    • 具体实现
    • 一般函数
      auto add(int a,int b) - > int
    
    • 使用decltype关键字
      auto add(int a, int b) -> decltype(a + b)
      {
          return a + b;
      }
    
    • 使用decltype关键字的模板
    template<typename T1, typename T2>
    auto add(T1 x, T2 y) -> decltype( x + y)
    {
         return x + y;
    }
    

    标签(空格分隔): C++

  • 相关阅读:
    jQuery 选择器
    http statusCode(状态码)含义
    JS实现拖拽效果
    Sql Service中的分页
    SQL Server中一些不常见的查询
    游标的基本写法
    doT.js
    关于GridView中控件的问题
    Sql Server创建函数
    ASP.NET中Ajax的用法
  • 原文地址:https://www.cnblogs.com/zjzyh/p/4086154.html
Copyright © 2011-2022 走看看