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

杭州网站建设商城价格php+mysql网站开发全程实例.pdf

杭州网站建设商城价格,php+mysql网站开发全程实例.pdf,o2o指的是什么,黄河道网站建设目录 1. 非类型模板参数 2.模板的特化 2.1 函数模板的特化 2.2 类模板的特化 2.2.1 全特化 2.2.2 偏特化 3.模板的分离编译 3.1 什么是分离编译#xff1f; 3.2 模板的分离编译 4.模板的总结 模板的初阶内容#xff1a;(594条消息) C模板的原理和使用_全貌的博客-CSD…目录 1. 非类型模板参数 2.模板的特化 2.1 函数模板的特化 2.2 类模板的特化 2.2.1 全特化 2.2.2 偏特化 3.模板的分离编译 3.1 什么是分离编译 3.2 模板的分离编译 4.模板的总结 模板的初阶内容(594条消息) C模板的原理和使用_全貌的博客-CSDN博客_c模板实现原理https://blog.csdn.net/qq_64105689/article/details/126693075?spm1001.2014.3001.5501 1. 非类型模板参数 模板的参数分为 类类型形参和非类型形参 类类型形参出现在模板参数列表中由class 和 typename关键字修饰 非类型形参用一个常量来做类(函数)模板的参数在类(函数)中可将该参数当作常量使用 namespace test {//实现一个包含非类型模板参数的静态数组templateclass T, size_t N 10//在类中可以将N当作常量使用class array{public:T operator[](size_t i){return _arr[i];}const T operator[](size_t i){return _arr[i];}bool empty(){//...}private:K _arr[N];size_t size;}; } 字符串、浮点数、类对象是不允许作为非类型模板参数 非类型模板参数必须在编译时就确定结果 2.模板的特化 使用模板可以编写一些与类型无关的代码但在面对特殊类型结果就会错误 比如实现了一个比较函数Less,大部分情况下比较的结果都是正确的但是对指针类型比较的是指针存放地址的大小结果显然易见是错误的这时候模板的特化很好的解决了这样的问题 templateclass T bool Less(const T a, const T b) {return a b; } int main() {int a1 7;int a2 6;cout Less(a1, a2) endl;//比较的是a1和a2的值//结果正确int* ptr1 a1;int* ptr2 a2;cout Less(ptr1, ptr2) endl;//比较的是a1和a2的地址//应返回false,打印0结果错误return 0; } 2.1 函数模板的特化 1.必须先有一个函数模板 templateclass T//要特化的函数模板 void Func(T left, T right) { }; 2.template后面跟空的 template//跟一对空的 void Funcint*(int* val1,int* val2) {} 3.函数名后跟一对尖括号括号内是要特化的类型 template//跟一对空的 void Funcint*(int* val1,int* val2)//函数名Func后跟要特化的类型 {} 4.形参列表必须跟模板参数完全相同不然就会出现一些奇怪的错误 template//跟一对空的 void Funcint*(int* val1,int* val2)//函数名Func后跟要特化的类型 {//新参列表的类型要与特化的类型int*一致 } 当然函数模板是不建议使用特化的因为遇到一些复杂的类型函数模板不好处理时可以直接显示写出该函数。 bool Func(int* left,int* right) {return *left *right; } 2.2 类模板的特化 2.2.1 全特化 顾名思义就是将函数模板参数全部确定化 templateclass T1, class T2 class Func { public: Func(){cout Func() T1,T2 endl;} private:T1 _a1;T2 _a2; };template class Funcchar, int { public: Func(){cout Func char, int endl;} private:char _a1;int _a2; };int main() {Funcint,int f1;Funcchar,int f2;return 0; } 2.2.2 偏特化 针对任意模板参数进行特殊处理 偏特化分为两种 1.部分特化 就是特化模板参数的部分其他跟全特化一致         2.对参数更进一步的限制  比如模板参数为T1,T2,那么可以特化为T1*, T2*、T1,T2的版本 templateclass T1, class T2 class Func { public: Func(){cout Func() T1,T2 endl;} private:T1 _a1;T2 _a2; }; template class FuncT1*, T2* { public: Func(){cout Func() T1*,T2* endl;} private:T1* _a1;T2* _a2; }; template class FuncT1, T2 { public: Func(){cout Func() T1,T2 endl;} private:T1 _a1;T2 _a2; };3.模板的分离编译 3.1 什么是分离编译 一个程序项目 由若干个源文件共同实现通过编译形成目标文件最后将目标文件链接形成单一的可执行文件执行的过程就叫做分离编译。 3.2 模板的分离编译 举个例子 //a.h templateclass T T Add(const T letf, const T right);//a.cpp templateclass T T Add(const T letf, const T right); {return left right; }//test.cpp #includea.h int main() {Add(1,2); } C/C程序要运行要经过 预处理 - 编译 - 汇编 - 链接 编译对程序按照语言特性进行词法、语法、语义分析错误检查无误后生成汇编代码 头文件不参加编译编译器对程序内多个源文件是单独分开独立编译的。 链接将多个.obj文件链接到一起并处理没有解决的地址问题 解决方法将.h跟.cpp文件放入一个文件xxx.hpp或xxx.h里面  4.模板的总结 优点: 1.模板复用了代码增加了开发效率C的模板库(STL)也因此而诞生  2.增强了代码的灵活性 缺点 1.模板会导致代码膨胀的问题编译时间变长 2.模板编译错误时错误信息非常凌乱不易定位错误
http://www.hkea.cn/news/14286259/

相关文章:

  • 网站织梦wordpress封面外链
  • 济南建网站的网站网站备案 不备案
  • 营销型网站维护多少钱设计说明500字通用
  • 3322网建站广东新闻频道直播
  • 卡盟做网站个人网站样式
  • 网站建设规划书电商通过qq群可以进行友情链接交换
  • 福建工程建设网站wordpress热门标签调用
  • 网站排名 优帮云游戏小程序代理
  • 天河做网站系统泉州网页制作设计
  • 购物网站建设行业现状网络推广公司案例
  • 网站开发和系统开发区别建设网站项目概况
  • 昆明网站推广公司湖南城乡和建设厅网站
  • 珠海网站建设优化购买网站域名多少钱
  • 网站关键词排名提高西安公积金 网站建设
  • 手机网站如何制作免费商务网站建设流程
  • 朝阳网站建设 国展wordpress长图拼接
  • 购物商城网站制作成都网站建设 今网科技
  • 互联网做视频网站需要许可证吗怎么做潮牌网站
  • 海口网站建设策划方案定制化网站开发
  • 如何选择制作网站公司肖云路那有做网站公司
  • 哔哩哔哩网站重庆在线高校开放平台
  • 浙江建设继续教育学院网站单页面网站怎么优化
  • 快站官方客户端下载完全不收费的聊天软件
  • 漯河网站推广公司售后管理系统软件
  • 西安网站网页设计我想注册公司怎么注册
  • 做个网站费用多少合适可以免费开店的平台
  • c++实现微博第三方登录 没有公司和网站如何做网推技巧
  • 自己做的网站怎么接支付宝网站建设中的问题
  • nat123做视频网站西部数码上传网站
  • 站长之家ping检测旅游网站开发毕业设计