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

猪八戒做网站要多少钱短链接生成器

猪八戒做网站要多少钱,短链接生成器,石家庄网站定制模板建站,上饶公司网站建设目录 前言#xff1a; 1.泛型编程 2.函数模版 3.类模版 为什么要有类模版#xff1f;使用typedef不行吗#xff1f; 类模版只能显示实例化#xff1a; 注意类名与类型的区别#xff1a; 注意类模版最好不要声明和定义分离#xff1a; 总结#xff1a; 前言 1.泛型编程 2.函数模版 3.类模版 为什么要有类模版使用typedef不行吗 类模版只能显示实例化 注意类名与类型的区别 注意类模版最好不要声明和定义分离 总结 前言 正如标题而言这里只是对模版的简单认识与使用方便后面博客介绍stl中一些容器的实现更复杂详细的模版相关的内容将会在模版进阶中介绍。 1.泛型编程 编写与类型无关的通用代码是代码复用的一种手段模版是泛型编程的基础。 而模版又分为函数模版与类模版。 2.函数模版 templateclass T void Swap(T x, T y) {T tmp x;x y;y tmp; }int main() {int a 1, b 2;double c 1.0, d 2.0;Swap(a, b);Swap(c, d);return 0; } 首先要注意第一点 两次调用的Swap函数实际都不是同一个函数第一是函数调用开辟的栈帧都不一样大一个是int一个是double第二是汇编call的函数的地址也是不一样的。 这里的class可用typename替换区别在后面的学习中会介绍。 补充一下库中的swap函数 那模版参数是怎么识别不同的类型的呢这就是模版的实例化实际就是编译器帮你完成了这个工作是隐式的实例化自动推演模版的类型。模版的实例化发生在编译时期所以是在编译的时候根据类型推导生成的代码 那下面来看两个问题首先第一个传的模版参数不明确会报错 templateclass T T Add(const T left, const T right) {return left right; }int main() {int a 1;double b 1.1;Add(a, b);//报错解决方法1 强制转换类型但是会丢失精度。 Add(a1,(int)d1); 解决方法2 使用显示实例化其实经历了隐式类型转换 coutAddint(a,b)endl;//实际b转int经过了隐式类型转换 问题2这样的能同时存在吗 int Add(int left, int right) {return left right; }templateclass T T Add(const T left, const T right) {return left right; }templateclass T1,class T2 T1 Add(T1 left, T2 right) {return left right; }int main() {int a 1;double b 1.1;Add(a, b); }首先前两个能同时存在吗答案是可以的因为函数名的修饰规则可能不一样。 其次调用的时候都传的类型是int类型前两个应该谁先调用呢答案是会调用第一个因为第一个在编译是就确定了地址直接就调用了而第二个在编译时才根据类型推导生成对应的代码也就是先要经历模版的实例化。 那如何就想调用模版呢使用模版的显示实例化呗Addint(a,b); 那在这3个模版中传的类型不一样会先去调用哪一个答案是去调用第三个编译器是聪明的会去调用最合适最匹配的那一个而如果没有第三个对应的才会调用第二个。 3.类模版 格式就是: templateclass T1,class T2,...,class Tn class 类模版名 {//类成员定义 };为什么要有类模版使用typedef不行吗 如果我们使用typedef那第一类想要int第二个类想要double是不是还要再写两个类所以就用到了类模版但是还是调用了两个类编译器帮你实现了 注意类里面的构造函数new了需要析构时delete因为类的对象销毁会调用析构。 类模版只能显示实例化 因为就算调用构造函数也传不到T的身上啊并且传的值要怎么识别是T呢 注意类名与类型的区别 vectorint v1;不加上模版参数只是类名加上才是类型。 注意类模版最好不要声明和定义分离 这里指的是头文件放类模版的定义.cpp文件放声明分文件的声明定义分离否则会出现链接错误虽然有解决方式但是还是不建议至于为什么到模版进阶会介绍。 如果想要类模版的声明和定义分离目前可以放到在同一个文件里面然后可以在类里面声明在类外面定义拿析构函数举例注意类模版的定义要写在这个类的下面不然找不到。但是还是不建议分开写容易出错 class Vector { public:Vector(int capacity4){_pDate new T[capacity];_size _capacity 0;}~Vector();private:T* _pDate;int _size;int _capacity; };templateclass T VectorT::~Vector() {delete[] _pDate;_pDate nullptr;_size _capacity 0; }int main() {Vectorint v1;return 0; } 总结 本篇偏重基本的使用和注意事项关于模版更进阶的到模版进阶篇再介绍。
http://www.w-s-a.com/news/303928/

相关文章:

  • win7配置不能运行wordpress关键词快速优化排名软件
  • 餐饮公司最好的网站建设手机网站 搜索优化 百度
  • 17网站一起做网批做服装团购网站
  • 广州网站制作知名企业网站搭建品牌
  • 如何去除网站外链个人网页制作全过程
  • 保洁公司网站怎么做科技设计网站有哪些内容
  • 建设厅网站查询网页设计好就业吗
  • 惠东县网站建设wordpress 如何回到初始
  • 如何让公司网站网站转备案
  • 获得网站所有关键字北京网站建设116net
  • 铜陵电子商务网站建设做龙之向导网站有用吗
  • 购物网站制作费用沧州新华区
  • 信宜网站设计公司在线购物商城系统
  • 网站维护是什么样如何制作网站教程视频讲解
  • 网站建设网络推广代理公司wordpress图片防盗链
  • 网站备案关站沈阳男科医院哪家好点
  • 王者荣耀网站建设的步骤网站页面用什么软件做
  • 典型网站开发的流程房屋装修效果图三室一厅
  • 制作微网站多少钱阿里巴巴做网站的电话号码
  • 风铃建站模板安卓手机软件开发外包
  • 深圳市住房和建设局门户网站域名转移影响网站访问吗
  • 做母婴网站赚钱汕头百姓网
  • 那个网站建设好动漫制作技术升本可以升什么专业
  • 网站建设企业响应式网站模板广西建设部投诉网站
  • app营销的特点wordpress优化方案
  • 静安网站建设公司如何编辑wordpress
  • 做网站的职位叫什么问题常州金坛网站建设
  • 保健品网站模板用jsp做的网站前后端交互
  • 网站带后台品牌网页设计图片
  • 保定清苑住房和城乡建设局网站分类信息网站程序