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

站长之家ip查询百度收录不到公司网站

站长之家ip查询,百度收录不到公司网站,清徐县建设局网站,快站app在之前我出过一篇博客介绍了模版的初阶:面向对象程序设计(C)模版初阶#xff0c;接下来我们将进行模版的进阶学习#xff0c;介绍关于更多模版的知识 1.非类型模版参数 模板参数分类类型形参与非类型形参 类型形参即#xff1a;出现在模板参数列表中#xff0c;跟在class或… 在之前我出过一篇博客介绍了模版的初阶:面向对象程序设计(C)模版初阶接下来我们将进行模版的进阶学习介绍关于更多模版的知识 1.非类型模版参数  模板参数分类类型形参与非类型形参 类型形参即出现在模板参数列表中跟在class或者typename之类的参数类型名称 非类型形参就是用一个常量作为类(函数)模板的一个参数在类(函数)模板中可将该参数当成常量来使用 非类型模版参数相较于宏更加灵活array中就使用到了非类型模版参数相当于静态数组可以根据需要开辟指定大小的数组array的好处就是可以对于越界检查很有效并且在栈上开空间比在堆上更加高效栈上开空间是向下生长从高地址到低地址 一般来说普通数组会在数组末尾设置标志位如果标志位被改变就越界报错所以一般对于读则不会越界警告而写入数据会报错 注意 1. 浮点数、类对象以及字符串是不允许作为非类型模板参数的 2. 非类型的模板参数必须在编译期就能确认结果 非类型模版 相比与宏更加灵活 只能用于整型其他类型不可以,char/int/short/bool等整型 C20支持double类型 templatesize_t N class Stack { private:int _a[N];int _top; };int main() {Stack5 a1;Stack10 a2;return 0; }------------------------------------------------------------------------------------------ 使用了非类型模版的结构 array:静态数组 对于越界检查很有效 在栈上开空间比在堆上更加高效 栈上开空间是向下生长从高地址到低地址int main() {//一般来说普通数组会在数组末尾设置标志位如果标志位被改变就越界报错//所以一般对于读则不会越界警告而写会int a[10] { 0 };cout a[11] endl;a[11] 1;//静态数组对于越界访问的读与写都会报错arrayint, 10 b;cout b[11] endl;b[11] 1;return 0; } 2.模版的特化 通常情况下使用模板可以实现一些与类型无关的代码但对于一些特殊类型的可能会得到一些 错误的结果需要特殊处理比如实现了一个专门用来进行小于比较的函数模板 注意一般情况下如果函数模板遇到不能处理或者处理有误的类型为了实现简单通常都是将该 函数直接给出 函数模板的特化步骤 1. 必须要先有一个基础的函数模板 2. 关键字template后面接一对空的尖括号 3. 函数名后跟一对尖括号尖括号中指定需要特化的类型 4. 函数形参表: 必须要和模板函数的基础参数类型完全相同如果不同编译器可能会报一些奇怪的错误 特化 templateclass T bool LessFun(const T left, const T right) {return left right; }特化 这里注意上面的const修饰的是left本身所以下面特化的const需要在*右边 template bool LessFunDate*(Date* const left, Date* const right) {return *left *right; }//推荐 bool LessFun(Date* const left, Date* const right) {return *left *right; } 2.1全特化 全特化即是将模板参数列表中所有的参数都确定化 类模版特化 1.全特化 templateclass T1, class T2 class Data { public:Data() { cout DataT1,T2 endl; } private:T1 _d1;T2 _d2; };template class Dataint,char { public:Data() { cout Dataint,char endl }; }2.2偏特化 偏特化任何针对模版参数进一步进行条件限制设计的特化版本 //2.半特化、偏特化 templateclass T1 class DataT1, double { public:Data() { cout DataT1,double endl }; };//偏特化特殊类型 //传的类型是指针 templateclass T1,class T2 class DataT1*, T2* { public:Data() { cout DataT1*,T2* endl }; };//传的是引用 templateclass T1,class T2 class DataT1, T2 { public:Data() { cout DataT1*,T2* endl }; };2.2.1部分特化 将模板参数类表中的一部分参数特化 // 将第二个参数特化为inttemplate class T1 class DataT1, int{public:Data() {coutDataT1, int endl;}private:T1 _d1;int _d2; }; 2.2.2参数更进一步限制  偏特化并不仅仅是指特化部分参数而是针对模板参数更进一步的条件限制所设计出来的一 个特化版本 //两个参数偏特化为指针类型 template typename T1, typename T2 class Data T1*, T2* { public:Data() {coutDataT1*, T2* endl;}private:T1 _d1;T2 _d2; };//两个参数偏特化为引用类型template typename T1, typename T2class Data T1, T2{public:Data(const T1 d1, const T2 d2): _d1(d1), _d2(d2){coutDataT1, T2 endl;}private:const T1 _d1;const T2 _d2;    };void test2 () {Datadouble , int d1;      // 调用特化的int版本Dataint , double d2;      // 调用基础的模板    Dataint *, int* d3;       // 调用特化的指针版本Dataint, int d4(1, 2);  // 调用特化的指针版本} 3.模版的分离编译 一般地模版不建议声明与定义分离如果使用的话有如下解决方法 1. 将声明和定义放到一个文件 xxx.hpp 里面或者xxx.h其实也是可以的。推荐使用这种 2. 模板定义的位置显式实例化。这种方法不实用不推荐使用
http://www.tj-hxxt.cn/news/135264.html

相关文章:

  • 闸北区网站设计企业为什么要分析环境
  • 网站左侧分类导航菜单北京网站建设华网
  • asp建站程序做企业网站设计价格是多少钱
  • 外国风格网站建设价格陆金所 网站开发二部
  • 网站做电子链接标识申请好吗meetsh网站建设
  • 泉州自助建站wordpress调试工具
  • 360免费建站空间营业执照年审登录入口
  • 需要网站建设东莞个人网站推广建设
  • 手机网站建设技术广州做网站代理商
  • 余姚做百度网站建设成都网站建设比较好的公司
  • 忻州集团网站建设热门关键词排名查询
  • 网站模块在线制作教程前端设计除了做网站还能做什么
  • 湘西 网站 建设 公司制作网页小图片
  • 襄樊公司网站建设广告设计免费
  • 三合一网站选什么系统wordpress 分页不出来
  • 免费的黄冈网站有哪些平台可以用微信支付网络营销的特点举例
  • 建e网室内设计网现代简约seo工具有哪些
  • php自适应网站开发wordpress编辑角色无法上传图片
  • 网站开发 承接浙江网站建设正规公司
  • 山东省建设工程网站做一个网站多少费用
  • 专业网站建设人工智能研发晋城网站开发
  • 北海涠洲岛旅游网站建设分析wordpress html代码
  • 网站建设seo规范网站后台生成文章很慢
  • 网站改版 后台建筑网片计算公式详解
  • 深圳极速网站建设服务器wordpress 微博登陆不了
  • 拿别的公司名字做网站广告传媒公司的网站应该怎么做
  • 网站收录查询旅游网站规划设计方案
  • 哪些公司可以建设网站wordpress继续阅读插件
  • 杭州市网站建设济南做网站建设公司
  • 做网站包头wordpress 登录 显示不了