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

专业的网站建设制作服务微信怎么开自己的公众号

专业的网站建设制作服务,微信怎么开自己的公众号,wordpress 只显示列表,一个电商网站开发需要多久目录 1. 泛型编程 2. 函数模板 2.1 函数模板的概念及格式 2.2 函数模板的原理 2.3 模板的实例化 2.4 模板参数的匹配原则 3. 类模板 3.1 类模板格式 3.2 类模板的实例化 1. 泛型编程 什么是泛型编程#xff1f;泛型编程是避免使用某种具体类型而去使用某种通用类型来进行…目录 1. 泛型编程 2. 函数模板 2.1 函数模板的概念及格式 2.2 函数模板的原理 2.3 模板的实例化 2.4 模板参数的匹配原则 3. 类模板 3.1 类模板格式 3.2 类模板的实例化 1. 泛型编程 什么是泛型编程泛型编程是避免使用某种具体类型而去使用某种通用类型来进行程序编写的方式依次来复用某段代码而避免大规模功能相似重复冗余的代码。下面的代码如果想用泛型编程该如何实现。 int add(int a,int b) {return a b; } double add(double a, int b) {return a b; } double add(int a, double b) {return a b; } 马云有次说了这么一句话“世界是懒人创造的懒不是傻懒如果你想少干就要想出懒的方法。 要懒出风格懒出境界。”C必然也是有风格有境界的所以C中设计了模板实现了泛型编程。 2. 函数模板 2.1 函数模板的概念及格式 模板就是一种模具通过给这个模具中放不同的材料类型来获得不同材料的产品以此来提高我们的工作效率。而函数模板就是某个函数的模具与类型无关在使用的时候参数化在我们给出特定类型就会生成特定类型的版本。 函数模板的格式 templatetypename T1, typename T2 ...typename Tn 返回值类型 函数名(形参列表) {     //函数体 } 根据这个函数的模板我们就可以实现上述add函数的模板 templatetypename L, typename R,typename RET RET add(L l, R r) {return l r; } 注typename是用来定义模板参数的关键字也可以用class代替。 2.2 函数模板的原理 函数模板本身不是函数而是一个模具当我们传入实际类型的时候编译器会根据我们传入的实参类型来推演生成对应类型的函数进行调用。 2.3 模板的实例化 当我们将类型传入模板来生产函数的时候称之为模板的实例化模板的实例化分为隐式实例化和显式实例化。 1. 隐式实例化隐式实例化就是我们不去指定类型让编译根据我们传入的实参判断其类型传入模板参数列表进行实例化。如下 templatetypename L, typename R int add(L l, R r) {return l r; } int main() {int a 0, b 1;cout add(a, b) endl; //根据我传入的a和b自动判断类型进行模板实例化。 } 细心的同学发现这里我将原来的代码中 typename RET 删掉了原因就是模板不会对函数的返回值类型进行自动判断而需要我们手动指定也就是显式实例化。 2. 显式实例化显式实例化就是我们手动向模板传递类型然后由编译器进行实例化。显式实例化的格式为 函数名类型1类型2...实参列表 如  templatetypename L, typename R, typename RET RET add(L l, R r) {return l r; } int main() {int a 0, b 1;cout addint,int,int(a, b) endl; } 上述代码我们传进去的 a和b的类型与模板参数类型是匹配的如果不匹配的话编译器会进行隐式类型转化如果转化失败就报错。如下         类型转换成功 templatetypename L, typename R, typename RET RET add(L l, R r) {return l r; } int main() {double a 0.1;int b 1;cout addint,int,int(a, b) endl; //adouble类型隐式转换成int类型 } 输出 类型转化失败  templatetypename L, typename R, typename RET RET add(L l, R r) {return l r; }class Date {// }; int main() {int a 0, b 1;cout addint,Date,int(a, b) endl; //a类型转化失败 } 输出 E0304    没有与参数列表匹配的 函数模板 add 实例 2.4 模板参数的匹配原则 一个函数的模板函数可以与非模板函数同时存在并且在没有显式实例化且类型匹配的情况下会优先匹配非模板函数如果是显式实例化才会调用模板如下。 templateclass T void swap(T a, T b) {std::swap(a, b);std::cout 我是模板 ;std::cout a b std::endl;} void swap(int a, int b) {std::swap(a, b);std::cout 我是非模板 ;std::cout a b std::endl;} int main() {int a 1, b 2;std::cout a b std::endl;swap(a, b); //类型匹配优先调用非模板函数swapint(a, b); //调用模板实例化 } 输出 当我们没有去写模板的时候函数发生类型不匹配可能会进行隐式类型转换但是有了模板之后就不会发生隐式类型转化而是使用模板实例化出来一个更为合适的函数。如下         没有模板时会发生隐式实例化 void test(int a, int b) {std::cout 我不是模板 std::endl; }int main() {test(2, 2.0);//2.0发生隐式类型转化成int } 输出 存在模板不会发生隐式类型转化而是使用模板实例化出来一个更为合适的函数 templateclass T1,class T2 void test(T1 a, T2 b) {std::cout 我是模板 std::endl; } void test(int a, int b) {std::cout 我不是模板 std::endl; } int main() {test(2, 2.0);//不发生隐式类型转化而是隐式实例化模板 } 输出 3. 类模板 3.1 类模板格式 和函数模板一样类模板是类的一个模具类模板格式如下 templateclass T1,class T2,class T3,...class Tn class 类模板名 {     //类体 }; 我们普通类是可以声明和定义分离的如果类模板要实现声明和定义分离那么在定义的时候也要加上模板声明。如 templateclass T1, class T2 class A {~A(); //声明 };templateclass T1,class T2 AT1, T2::~A() //定义 {//... } 3.2 类模板的实例化 类模板的实例化和函数模板相同需要在类名后加上尖括号并且指定类型。注模板名不是类实例化后才是一个类。 templateclass T class Date {//.. }; int main() {Dateint; }
http://www.hkea.cn/news/14419733/

相关文章:

  • 网站开发工具选用原则网站系统 深圳博域通讯
  • 做外国购物网站需要交税吗网站做哪块简单
  • p2p网站开发思路方案网站建设推广济南兴田德润优惠吗
  • 公司网站一年费用o2o网站建设平台
  • 西安市城乡与住房建设厅网站提供有经验的网站建设
  • 沈阳求做商城 网站百度关键词权重查询
  • 商务网站建设综合实训免费开网站系统
  • 沈阳网站建设渠道wordpress 点击特效
  • 国外的建筑设计网站网站建设的总体设计思想
  • 广州花都网站建设centos wordpress 空白
  • 广州站西手表网站建设怎么分析市场分析
  • 青岛网站制作定制建设网站建设网站
  • 郑州市建设网站建设内容管理网站的目的
  • 招聘网58同城求职信息seo综合查询中的具体内容有哪些
  • 网站建设以及维护跨境电商的现状及前景
  • 网站短期培训能学什么wordpress doc导入
  • 忽略的网站做公众号一个月挣多少钱
  • 龙岗 网站建设深圳信科跟做网站的人谈什么
  • 圣辉友联网站建设wordpress 4.1分页
  • 用jsp做网站做网站1008做网站 - 百度
  • 网站建设是什么在dw里如何做网站
  • 专门做网站建设的公司wordpress怎么社交分享
  • 迁安做网站哪家好近期热点话题
  • 免费爱做网站关键词优化百家号
  • 宾馆酒店 网站模板vr网站开发
  • 邯郸市建设局网站2017域名买了怎么做网站
  • 如何制作网站?网站空间到期
  • 建站流程主要有哪些门店设计装修效果图
  • 内蒙古网站制作新乡app开发公司
  • wordpress 素材站模板竹子建站教程