当前位置: 首页 > news >正文

web开发前端框架优化大师apk

web开发前端框架,优化大师apk,麻栗坡做网站,服务网络推广随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 函数模板: 函数模板是函数的蓝图或处方,编译器使用它生成函数系列的新成员。新函数在第一次使用时创建。从函数模板中生成的函数称为该模…

随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

函数模板:

函数模板是函数的蓝图或处方,编译器使用它生成函数系列的新成员。新函数在第一次使用时创建。从函数模板中生成的函数称为该模板的一个实例或模板的实例化。函数模板的开头是关键字template,表示这是一个模板。其后是一对尖括号,它包含了参数列表。在使用从模板中生成的函数之前,必须确保把声明(即原型)或模板的定义放在源文件中。模板的实例化只生成一次。如果后续的函数调用需要同一个实例,就会调用已经创建好的实例,即使同一个实例在不同的源文件中生成,程序也仅会包含该实例定义的一个副本。使用时需要注意两个问题:
第一,函数模板本身不做任何工作,它是编译器用于从函数调用中创建函数定义的处方或蓝图。

第二,所有工作都在编译和链接过程中完成。编译器使用模板生成函数定义的源代码,再编译这些代码。链接程序的作用是仅把函数的一个实例链接到可执行模块上,即使几个不同的源文件调用同一个实例,也只链接一个实例。在执行程序时,源代码中是否存在模板根本不重要。

显示指定模板参数:

在调用函数时,可以显示指定模板的参数,以控制使用哪个版本的函数。编译器不再推断用于替换T的类型,只是接受指定的版本。在下列情形下,比较有用:

1、函数调用不是很确切,编译失败。此时可以使用该技巧帮助编译器去除不确定性。

2、在一些情况下,编译器不能推断出模板参数,因此无法选择要使用哪个版本的函数。

3、为了避免有太多的函数版本(从而避免过多占用内存),可以强迫函数调用使用某个版本的函数。

模板的说明:

对于某个参数值(在有多个参数的模板中,就是一组参数值),模板的说明定义了它不同于标准模板的动作。模板说明的定义必须放在原语句的声明或定义之后。如果把说明放在前面,程序就不会编译。

说明的定义以关键字template开头,但要省略参数,所以原声明中模板参数外部的尖括号就是空的。必须定义说明的参数值,而且必须放在模板函数后面的尖括号中。下面看示例:


示例:

#include <iostream>
using std::cout;
using std::endl;
//模板声明
template<class T> T larger(T a,T b);
//模板说明声明
template<> long* larger<long*>(long* a,long* b);
int main(int argc,char* argv[]){cout<<"Larger of 1.5 and 2.5 is "<<larger(1.5,2.5)<<endl;int a_int=35;int b_int=45;cout<<"Larger of "<<a_int<<" and "<<b_int<<" is "<<larger(a_int,b_int)<<endl;long a_long=9;long b_long=8;cout<<"Larger of "<<a_long<<" and "<<b_long<<" is "<<larger(a_long,b_long)<<endl;//显示指定模板参数cout<<"Larger of "<<a_int<<" and "<<b_int<<" is "<<larger<long>(a_int,b_int)<<endl;//调用模板说明cout<<"Larger of "<<a_long<<" and "<<b_long<<" is "<<*larger(&a_long,&b_long)<<endl;return 0;	
} 
//模板定义
template <class T> T larger(T a,T b){cout <<"standard version"<<endl;return a>b?a:b;
}
//模板说明定义
template <> long* larger<long*>(long* a,long* b){cout <<"specialized version"<<endl;return *a>*b?a:b;
}

http://www.lbrq.cn/news/2684629.html

相关文章:

  • 企业网站建设admin外包公司的人好跳槽吗
  • 免费web服务器网站澳门长沙seo网络公司
  • 找深圳做网站的公司seo代运营
  • 织梦网站tel标签郑州网站推广培训
  • 松山湖做网站专业网站优化公司
  • 网站运维托管软件开发一般需要多少钱
  • 酒店品牌网站建设推广网站怎么注册
  • 网做英文网站链接制作
  • 什么网站可以做任务挣钱的青岛网站建设制作推广
  • 做网站建设需要多少钱搜索引擎推广的三种方式
  • 做网站注意事项北京全网营销推广公司
  • 自助业务网站系统seo收录查询工具
  • 免费网站模板 怎么用广东公共广告20120708
  • 政府网站建设程序的设计原则不包括百度快速收录提交工具
  • 免费建网站赚钱免费企业网站建设
  • 甘肃省今天疫情最新情况sem和seo是什么
  • 有关大学生做兼职的网站无锡营销型网站建设
  • 网站ipv6改造怎么做企拓客app骗局
  • 网站建设与维护手机app免费下载
  • 泰安公司网站建设沈阳seo
  • 什么网站专门做自由行的线上推广方式都有哪些
  • 长春做企业网站多少钱西安网站快速排名提升
  • 用axure做网站的规范友情链接平台赚钱吗
  • 定制网站制作公司有哪些信息流推广的竞价机制是
  • 做鞋设备网站抖音十大搜索关键词
  • 做一个自己的网站多少钱西安网络推广营销公司
  • 做网站现成的测试账号百度极速版app下载
  • 四川网站推广优化上海网站搜索排名优化哪家好
  • 聊城 网站制作蓝牙耳机网络营销推广方案
  • dwcc如何做网站网络推广怎么做方案
  • Java进阶学习之不可变集合
  • java面试题储备4: 谈谈对es的理解
  • 《飞算Java AI:从安装到需求转实战项目详细教学》
  • Etcd客户端工具Etcd Workbench更新了1.2.0版本!多语言支持了中文,新增了许多快捷功能使用体验再次提升
  • 【Node.js从 0 到 1:入门实战与项目驱动】1.4 Node.js 的发展与生态(历史版本、LTS 版本、npm 生态系统)
  • C#高级语法_泛型