zoukankan      html  css  js  c++  java
  • C++函数新增特性 【续2】

    函数模板:是通用的函数描述,也就是说,他们使用通用类型来定义函数,其中的通用类型可用具体类型替换。通过将类型作为参数传递给模板,可使编译器生成该类型函数。

    函数模板允许以任意类型的方式来定义函数,例如:

    Template<class Any>

    void Swap (Any & a, Any & b)

    {具体定义}

    最新的c++标准使用typename 替代 class。如果考虑向后兼容的话用class比较好。   使用函数Swap()时,编译器将检查所使用的参数类型,并生成相应的函数。

    注意:函数模板不恩能够缩短可执行程序。最终的代码不包含任何模板,而只包含了微程序生成的实际函数。使用模板的好处:它使生成多个函数定义更简单、更可靠。

    可以像重载的函数一样使用重载的模板。

    显示具体化:参数相同,但是需要使用的不同的代码,因此将要更该的成员显式说明。例如:交换job结构的非模板函数、模板函数和具体化的原型:

    void Swap (job&, job &);

    template <class any>

    void Swap (any &, any &);

    template<>void Swap<job> (job &, job &);

    模板函数实例化:编译器使用模板为特定类型生成函数定义时,得到的是模板实例。实例化在声明前添加:template,  注意具体化是添加:template<>.

  • 相关阅读:
    Android 序列化 反序列功能
    Android两个应用之间共享数据之SharedPrefence
    利用Asp.Net的Identity控制登录权限
    基元类型
    CLR概述
    python中的函数-基础
    较为复杂的sql
    oracle中的替换字段字符串的方法
    使用Sql查看表对应的外键关系。
    js中的除法
  • 原文地址:https://www.cnblogs.com/babysunnie/p/3200318.html
Copyright © 2011-2022 走看看