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

网站无法访问的原因图像制作

网站无法访问的原因,图像制作,网页设计自己做网页素材,网站备案的意思前文本文主要是讲解一下C中的利器——模板#xff0c;相信铁子们在学完这一节后#xff0c;写代码会更加的得心应手#xff0c;更加的顺畅。一#xff0c;泛型编程想要学习模板#xff0c;我们要先了解为什么需要模板#xff0c;我们可以看看下面这个程序。int add(int中的利器——模板相信铁子们在学完这一节后写代码会更加的得心应手更加的顺畅。一泛型编程想要学习模板我们要先了解为什么需要模板我们可以看看下面这个程序。int add(int a, int b) {return a b; } double add(double a, double b) {return a b; }看看上面的程序通过函数重载我们实现了不同类型的add函数但是否有些麻烦呢这些函数只是类型不同而每增加一个新类型我们就要在写一个函数而且一个出错可能所有的函数都出错。而我们C的老祖宗也想到了这个问题于是模板就应运而生了。通过模板来实现我们的需求可以称为泛型编程。泛型编程编写与类型无关的通用代码是代码复用的一种手段。模型是泛型编程的基础二函数模板2.1 函数模板的概念函数模板代表了一个函数家族该函数模板与类型无关在使用时被参数化根据实参类型产生函数的特定类型版本。2.2函数模板格式templatetypename T1, typename T2,......,typename Tn返回值类型 函数名(参数列表){}templatetypename A A add(A a, A b) {return a b; }注意typename是用来定义模板参数关键字也可以使用class(切记不能使用struct代替class)2.3 函数模板的原理函数模板不是一个实在的函数编译器不能为其生成可执行代码。定义函数模板后只是一个对函数功能框架的描述当它具体执行时将根据传递的实际参数决定其功能。 所以其实就是将我们重复做的事情交给了编译器当然要是怕累着编译器也可以自己实现haha。templatetypename A A add(A a, A b) {return a b; } int main() {int a 1, b 2;add(a, b);double c 3.3, d 4.4;add(c, d);return 0; }如以上程序调用方式如下当我们调试的时候调到反汇编我们可以发现int型的和double型所调用的函数是不一样的由此我们也可以论证编译器根据模板创建出对应函数以供使用在这个过程中模板起到了一个蓝图的作用而具体的建造材料则由我们传过去的参数决定。而这个建造的过程一般是在编译器编译阶段对于函数模板的使用编译器会根据传入的实参类型来推演出对应类型的函数以供使用。比如当用double类型使用函数模板add时编译器通过对参数类型的推演将A确定为double型创造函数。2.4 函数模板的实例化用不同类型的参数调用函数模板称为函数模板的实例化。模板参数实例化分为隐式实例化和显示实例化1.隐式实例化让编译器根据实参推演模板参数的实际类型templatetypename A A add(A a, A b) {return a b; } int main() {//下面两个是比较典型的隐式实例化int i1 1, i2 2;add(i1, i2);double d1 3.3, d2 4.4;add(d1, d2);//那么下面这种情况呢//add(i1,d1) add(i2,d2)//这种情况下编译器会根据实参i1将A推演为int//通过实参d1将A推演为double型//此时编译器不知道用那个就会报错//那么怎么解决这种情况呢//1.强制转化add(i1, (int)d1);add((double)i2, d2);//2.显示实例化return 0; }2.显示实例化在函数名后的中指定模板参数的实际类型2.5 模板参数的匹配规则一个非模板函数可以和一个同名函数模板同时出现而且该函数模板还可以被实例化成这个非模板函数int add(int a, int b) {return a b; } templatetypename A A add(A a, A b) {return a b; } int main() {add(1, 2);//此时会优先调用非模板函数//因为跳过模板实例化的过程效率更高add(int)(1, 2);//通过实例化模板//也可以实例化出这个非模板函数return 0; }对于非模板函数和同名函数模板如果其他条件都相同在调动时会优先调用非模板函数而不会从该模板产生出一个实例。如果模板可以产生一个具有更好匹配的函数 那么将选择模板int add(int a, int b) {return a b; } templatetypename A A1 add(A1 a, A2 b) {return a b; } int main() {add(1, 2);//完全匹配非模板函数//不会在进行模板实例化而是直接选择非模板函数add(1, 1.1);//与非模板函数不匹配//模板函数会根据参数生成更加匹配的函数return 0; }模板函数不允许自动类型转换但普通函数可以进行自动类型转换三,类模板3.1 类模板的定义格式定义格式templateclass T1, class T2, ..., class Tn class 类模板名 {// 类内成员定义 };templateclass A class Stack { public:Stack(int capaicty 4){_a new A[capaicty];_size 0;_capaicty capaicty;}~Stack(){delete[] _a;_size _capaicty 0;} private:A* _a;int _size;int _capaicty; }; int main() {//通过类模板我们可以同时创建int和double类型的栈Stack intst1;Stack doublest2;return 0;}3.2 类模板的实例化类模板实例化与函数模板实例化不同类模板实例化需要在类模板名字后跟然后将实例化的类型放在中即可类模板名字不是真正的类而实例化的结果才是真正的类。总结学习过模板后C的学习也会进入一段蜜月期因为之后我们会接着学习stl库这将大大提高我们C代码的编写效率。
http://www.w-s-a.com/news/486500/

相关文章:

  • 一般做网站上传的图片大小网站软件设计
  • 用来网站备案注册什么公司好wordpress怎么搜索中文主题
  • 网站开发 打标签深圳软件公司排名
  • 邯郸的网站建设电子网站怎么做的
  • 中国企业信用网四川游戏seo整站优化
  • 下载站推广wordpress扩展字段
  • 网站建设这个工作怎么样免费电子版个人简历模板
  • 移动网站设计与制作网站开发接私活
  • 视频制作素材网站wordpress mysql 被删
  • 静态网站 模板公司一般都用什么邮箱
  • 做网站效果图是用ps还是ai泰安人才网最新招聘信息2022年
  • 免费建站网站一级大录像不卡在线看网页郑州网站关键
  • 做网站 然后百度推广哈尔滨建筑网
  • 章丘营销型网站建设网站测评必须做
  • 营销者网站怎么把网站黑了
  • 律师事务所手机网站校园网站设计
  • 网站案例展示分类网站响应速度优化
  • 风景网站的制作网站ip地址查询域名
  • 怎样看网站是谁做的马鞍山什么房产网站做的好
  • 西安推荐企业网站制作平台软装设计方案ppt
  • 网站静态页模板专业网站设计开发公司
  • 手机免费在线搭建网站短网址生成防红
  • 天津网站设计网站制作如何新建wordpress
  • 山东省建设备案网站审批国际新闻最新消息10条简短
  • 成都市建设网扬尘监控网站短域名转换
  • 怎么做手机网站潍坊建设银行网站
  • 做网站分什么软件品牌设计培训
  • 太原网站设计排名设计本装修效果图
  • 网站个人中心模板石家庄网站系统开发
  • 优秀的电子商务网站教育公司网站建设文案