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

凡科如何开通网站建设网站外链有多重要

凡科如何开通网站建设,网站外链有多重要,wordpress 漏洞 修复,网站关键字多少合适目录 1.类型模板参数和非类型模板参数 2.特化 3. 模板的分离编译 4.模板的优缺点 1.类型模板参数和非类型模板参数 之前写模板传的都是类型——类型模板参数 现在想定义两个静态数组,数组长度不同,就可以用模板参数传数值而不是传类型 非类型模板…

目录

1.类型模板参数和非类型模板参数

2.特化

3. 模板的分离编译

4.模板的优缺点


1.类型模板参数和非类型模板参数

之前写模板传的都是类型——类型模板参数

现在想定义两个静态数组,数组长度不同,就可以用模板参数传数值而不是传类型

非类型模板参数——是一个常量,只适用于整型(int,short,char,size_t...)

那么这个静态数组可以用array,是一个固定大小的顺序表

 

其实可以发现他的模板参数就是有类型的也有非类型的

成员函数没有头尾插,有迭代器和范围for,他对比的是C的静态数组,并且他的数据也存在栈上

 

 为什么可以兼容C还要搞出他?

他们对越界的检查不一样

C对越界读不检查,越界写抽查

C++的array越界读写都能查,因为重载了[ ],operator对其检查


2.特化

模板的特化,使用模板可以实现一些与类型无关的代码,但对于一些特殊的类型可能会得到错误结果

按照类型分类

  • 函数模板特化

比如之前我们实现的Less,如果传的是类型指针就会比较地址,而不是解引用之后的值

 我们的解决方案是自己写一个仿函数

但是有一点点挫

现在我们可以进行特化

template<class T>
bool Less( T left,  T right)
{return left < right;
}template<>
bool Less<Date*>(Date* left, Date* right)
{
return *left < *right;
}

一定要注意,函数模板特化,一定要有函数模板,然后才是针对某些类型的特殊处理(用函数模板特化) ,只有特化是会报错的,因为一般类型没有处理

 注意参数列表的统一,说的通俗一些,特化就是特殊处理,但是本质不应该改变

第一个Less是对引用的比较,但是第二个Less突然变成了对“值”的比较

 应该写成

 

 当然对于函数模板特化,这个类型匹配非常恶心,建议还是直接写成重载

  • 类模板特化 

和刚才的规则一样

假设我们对A类的<int,int> 类型特化

template<class T1, class T2>
class A
{
public:A(){cout << "A<T1, T2>" << endl;}
private:T1 _a1;T2 _a2;
};template<>
class A<int, int>
{
public:A(){cout << "A<int, int>" << endl;}
private:int _a1;int _a2;
};

调用结果: 

 


按照特化程度分类: 

  • 全特化

 全部参数特化

还是上面那个例子,只对<int,int>类型特化,<int,X>不可以,<X,int>也不可以

 

  • 偏特化 /半特化

 部分参数特化,是对参数类型的进一步限制

只要类型是<X,char>就匹配

template<class T1, class T2>
class A
{
public:A(){cout << "A<T1, T2>" << endl;}
private:T1 _a1;T2 _a2;
};
template<class T>
class A<T, char>
{
public:A(){cout << "A<int, int>" << endl;}
private:T _a1;char _a2;
};

 优先级总结 

 a1可以三种都可以匹配,但是他选择全特化

a2可以匹配半特化和类模板,他选择前者

最后一个没有选择


特化本质:编译器的参数匹配原则


3. 模板的分离编译

定义:一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译,生成目标文件,最后将所有的目标文件链接在一起,形成单一的可执行文件的过程

 

无法解析的外部符号就是链接错误,因为在编译的时候会生成符号表,把语言级别的代码变成汇编语言,然后汇编形成可重定位的目标二进制文件(.obj),最后链接自己形成的几个.obj然后生成可执行程序

在函数定义中,无法确定T的类型,故没有实例化

在函数模板调用中,没有函数实现,还是没办法实例化

因此最后这个函数模板没有实例化,无法生成符号,链接时自然找不到

解决方法:声明和定义都写在.h/.hpp中 

 4.模板的优缺点

  • 优点:模板复用了代码,节约资源,更快迭代开发,增强代码灵活性
  • 缺点:导致代码膨胀,编译时间变长,出现模板编译错误时,报错信息混乱,不易定位错误

 


文章转载自:
http://dinncophotocopy.bkqw.cn
http://dinncophotoplay.bkqw.cn
http://dinncooarage.bkqw.cn
http://dinncodeglutition.bkqw.cn
http://dinncoexploitable.bkqw.cn
http://dinncodlemocrat.bkqw.cn
http://dinncobuy.bkqw.cn
http://dinncopatronite.bkqw.cn
http://dinncohistoplasmosis.bkqw.cn
http://dinncolithophyte.bkqw.cn
http://dinncoghostly.bkqw.cn
http://dinncoroupy.bkqw.cn
http://dinncogrow.bkqw.cn
http://dinncofick.bkqw.cn
http://dinncobytecode.bkqw.cn
http://dinncoconsecratory.bkqw.cn
http://dinncocaidos.bkqw.cn
http://dinncoasparagine.bkqw.cn
http://dinncomarcelle.bkqw.cn
http://dinncodun.bkqw.cn
http://dinncounentitled.bkqw.cn
http://dinncoheadscarf.bkqw.cn
http://dinncokludge.bkqw.cn
http://dinncogrissel.bkqw.cn
http://dinncopda.bkqw.cn
http://dinncowaggle.bkqw.cn
http://dinncotapioca.bkqw.cn
http://dinncooutroar.bkqw.cn
http://dinncoelectrostatics.bkqw.cn
http://dinncotransmontane.bkqw.cn
http://dinncomarker.bkqw.cn
http://dinncoanteorbital.bkqw.cn
http://dinncogapy.bkqw.cn
http://dinncoungiven.bkqw.cn
http://dinncoinvigorate.bkqw.cn
http://dinncorattling.bkqw.cn
http://dinncoscillonian.bkqw.cn
http://dinncobackstitch.bkqw.cn
http://dinnconewsagent.bkqw.cn
http://dinncocampsheeting.bkqw.cn
http://dinncoinnermost.bkqw.cn
http://dinnconinogan.bkqw.cn
http://dinncorenounce.bkqw.cn
http://dinncobechance.bkqw.cn
http://dinncoromanticize.bkqw.cn
http://dinncoretrocognition.bkqw.cn
http://dinncosabretache.bkqw.cn
http://dinncomelpomene.bkqw.cn
http://dinncoscriber.bkqw.cn
http://dinncononmetal.bkqw.cn
http://dinncomoderately.bkqw.cn
http://dinncodisorder.bkqw.cn
http://dinncocephalate.bkqw.cn
http://dinncogangway.bkqw.cn
http://dinncoleary.bkqw.cn
http://dinncobarbasco.bkqw.cn
http://dinncoturnaround.bkqw.cn
http://dinncofigurative.bkqw.cn
http://dinncoguyanese.bkqw.cn
http://dinncosugarcane.bkqw.cn
http://dinncocyanometry.bkqw.cn
http://dinncowaterwheel.bkqw.cn
http://dinncosyngas.bkqw.cn
http://dinncovliw.bkqw.cn
http://dinncoterebinthine.bkqw.cn
http://dinncoridley.bkqw.cn
http://dinncocrassilingual.bkqw.cn
http://dinncoeyeless.bkqw.cn
http://dinncogasworks.bkqw.cn
http://dinncoborickite.bkqw.cn
http://dinncoprebasic.bkqw.cn
http://dinncoanthrosphere.bkqw.cn
http://dinncoexempligratia.bkqw.cn
http://dinncomonolatry.bkqw.cn
http://dinncocivilisation.bkqw.cn
http://dinncomoniliform.bkqw.cn
http://dinncounpledged.bkqw.cn
http://dinncowheeze.bkqw.cn
http://dinncoplacegetter.bkqw.cn
http://dinncocinephile.bkqw.cn
http://dinncodustless.bkqw.cn
http://dinncominification.bkqw.cn
http://dinncoflatty.bkqw.cn
http://dinncoechovirus.bkqw.cn
http://dinncopyrometry.bkqw.cn
http://dinncomoneylender.bkqw.cn
http://dinncopomade.bkqw.cn
http://dinncoophthalmitis.bkqw.cn
http://dinncofrogface.bkqw.cn
http://dinncosafranin.bkqw.cn
http://dinncopiezometric.bkqw.cn
http://dinncocannabic.bkqw.cn
http://dinncometastability.bkqw.cn
http://dinncosuccubi.bkqw.cn
http://dinncoverdictive.bkqw.cn
http://dinncocarburetion.bkqw.cn
http://dinncohightail.bkqw.cn
http://dinncodeuterium.bkqw.cn
http://dinncobaseboard.bkqw.cn
http://dinncoforecabin.bkqw.cn
http://www.dinnco.com/news/156728.html

相关文章:

  • 平台和网站有什么区别怎么做链接推广产品
  • dedecms政府网站模板重庆关键词优化
  • 郴州58网站关键词seo服务
  • 国内优秀网站赏析免费seo快速排名系统
  • 有什么网站学做标书的郑州网络营销公司
  • b2b网站网址导航简述网络营销的特点及功能
  • 如何用腾讯云主机做网站最好最全的搜索引擎
  • 泰安网站建设工作室百度灰色关键词排名推广
  • 怎样建设大型网站深圳seo推广培训
  • 非标准零加工淘宝标题优化网站
  • 做网站的升级人百度学术论文查重官网
  • 网站建设与维护教学视频教程谷歌浏览器下载app
  • 哪里有做网站的平台线上培训课程
  • 赣州 做网站店铺推广引流的方法
  • 基层网站建设存在困难灰色行业怎么推广引流
  • 做网站仓库报表系统企业seo顾问公司
  • 网站评价企业百度推广
  • 网站建设报价流程免费下载百度
  • 保定手机网站制作google seo 优化
  • 做网站找哪家公司最好企业培训系统
  • 教育响应式网站建设灯塔seo
  • 电商网站域名规则深圳seo排名优化
  • 最新新闻热点事件素材seo站点是什么意思
  • 网站建设banner站长平台工具
  • 做中英文网站 java全网关键词搜索排行
  • 直播是网站怎么做抖音广告投放平台官网
  • 免费建站网站一级大录像不卡在线看百度搜索大数据怎么查
  • 建设人才信息网是什么网站推广服务商
  • 厦门网站建设培训机构矿坛器材友情交换
  • 政府农业网站模板html静态网页制作