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

网站建设报告书快照网站

网站建设报告书,快照网站,宁波公司建网站哪家好,家居在线设计平台5.1函数模板一、要点归纳1.定义函数模板2.实例化函数模板3.重载模板函数4.函数调用的匹配顺序一、要点归纳 1.定义函数模板 定义函数模板的一般格式如下#xff1a; template类型形参表 返回类型 函数名#xff08;形参表#xff09; {函数体#xff1b; }例如以… 5.1函数模板一、要点归纳1.定义函数模板2.实例化函数模板3.重载模板函数4.函数调用的匹配顺序一、要点归纳 1.定义函数模板 定义函数模板的一般格式如下 template类型形参表 返回类型 函数名形参表 {函数体 }例如以下代码定义了一个绝对值的函数模板 template class T T abs(T x) {if(x0) return -x;return x; }2.实例化函数模板 函数模板式不能直接执行的需要在实例化为模板函数后才能执行。例如abs(-10)用于实例化前面声明的函数模板-10为int型所以实例化为以下真正的模板函数 int abs(int x) {if(x0)return -x;return x; }有关实例化函数模板的说明如下 和普通函数一样如果函数模板定义放在实例化之后需要对其声明。例如前面的abs函数模板的声明方式如下 template class T T abs(T x);虽然模板参数T可以实例化为各种类型但是采用模板参数T的各参数之间必须保持完全一致。例如下面程序中存在错误 template class T T min(T x, T y) {return (x y) ? y : x; } void test01() {int n 3;char c a;double d 2.4;std::cout min(n, n) std::endl; // 正确std::cout min(c, c) std::endl; // 正确std::cout min(d, d) std::endl; // 正确// std::cout min(n, c) std::endl; // 错误// std::cout min(d, c) std::endl; // 错误// std::cout min(n, d) std::endl; // 错误 }在函数模板实例化时template中定义的每个类型参数都应该得到明确的类型值例如以下函数模板定义没有错误 template class T,class T T1 abs(T x) {if(x0) return -x;return x; }但执行abs(-10)时候会出现不能确定模板参数T1的错误。 在函数模板实例化中显式给出类型参数的数据类型时可以部分给出类型参数的数据类型。在李世华过程中按template中指定的顺序进行类型参数的匹配。例如有以下函数模板 template class T1,class T2 T1 max(T1 x,T2 y) {if (xy) return x;else return y; }以下的函数模板实例化都是正确的 maxint,char(1,a) //T1为intT2为char返回a的ascii码97 maxint(1,2.5) //T1为intT2为double返回2.5的int型2当类型形参表中含有用户定义的类类型时需要在类中设计相关重载运算符。例如如下程序式正确的 template class T T max(T x, T y) {return (x y) ? x : y; }class A {int n;public:A(int x) : n(x) {}bool operator(A s) // 重载运算符{if (n s.n)return true;elsereturn false;}void display() { std::cout n std::endl; } }; void test02() {A a(1), b(2);max(a, b).display(); }如果类中没有定义重载运算符“”则在模板函数max中会报错。 3.重载模板函数 重载模板函数如下 template class T void dispArr(T *arr, int n)//函数模板1 {int i;for (i 0; i n; i)std::cout arr[i] ;std::cout std::endl; } template class T void dispArr(T *arr, int i, int j)//函数模板2 {int k;for (k i; k j; k)std::cout arr[k] ;std::cout std::endl; } void test03() {int a[] {1, 2, 3, 4, 5, 6, 7, 8, 9};double b[] {9, 8, 7, 6, 5, 4, 3, 2, 1};std::cout a:;dispArr(a, 8);std::cout b:;dispArr(b, 2, 6); }4.函数调用的匹配顺序 调用函数时首先寻找参数完全匹配的非模板函数如果找到了就调用。在1寻找失败后寻找一个函数模板将其实例化产生一个匹配的模板函数若找到了就调用。在1和2均失败后寻找非模板重载函数如果均失败则报错
http://www.hkea.cn/news/14397880/

相关文章:

  • 免备案网站空间购买百度信息流是什么
  • html静态页面怎么放在网站上如何选网站空间
  • 兰州北山生态建设局网站网站修改图片怎么做
  • 南通网络公司网站值得关注的网站
  • 平面设计招聘唐山百度优化排名
  • 开通建立企业网站聊城九洲建设有限公司网站
  • 解析视频的网站怎么做做视频链接哪个网站好
  • 网站建设需求原型最近最新在线观看免费高清完整版
  • 郑州人才网站ppt模板免费下载素材库
  • 金华市建设银行网站代理公司注册合同范本
  • 什么叫网站集约化建设南宁做网站找哪家公司
  • 订阅号怎么做微网站河北搜索引擎推广价格
  • ftp上传后没有网站北京公司注册流程及需要的材料
  • 自考网站建设与管理数据库设计对网站开发的影响
  • 盐城网站建设有限公司网络建设需求
  • jsp网站开发软件哪个好宠物网站建设的目的
  • 永康住房和城乡建设部网站深圳网站建设 设计首选
  • 镇江网站建设咨询公司重名 做网站
  • 沧州网站设计公司价格推广网站免费
  • 河北智能网站建设多少钱龙海网站建设哪家好
  • 微科技h5制作网站模板ps网站子页怎么做
  • 多种五屏网站建设wordpress 3.9 xss
  • 网站的管理权限有什么用seo做得比较好的公司
  • wordpress架构的网站网站和微信
  • 微网站建设教程视频教程团购网站优化
  • 有哪些网站可以做视频深圳互联网企业排名
  • 吉安网站公司企业网站备案信息查询
  • 如何建设网站哪个济南兴田德润简介自己建设自己的网站
  • 网站推广的分类沈阳快速建站公司有哪些
  • 设计一个网站开发方案食品包装设计用什么软件