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

做海外网站网站建设方案书要写吗

做海外网站,网站建设方案书要写吗,卖水果网站建设的策划书,免费校园网站建设✨前言✨ #x1f4d8; 博客主页#xff1a;to Keep博客主页 #x1f646;欢迎关注#xff0c;#x1f44d;点赞#xff0c;#x1f4dd;留言评论 ⏳首发时间#xff1a;2023年11月21日 #x1f4e8; 博主码云地址#xff1a;博主码云地址 #x1f4d5;参考书籍 博客主页to Keep博客主页 欢迎关注点赞留言评论 ⏳首发时间2023年11月21日 博主码云地址博主码云地址 参考书籍《C Primer》《C编程规范》 编程练习牛客网力扣网 由于博主目前也是处于一个学习的状态如有讲的不对的地方请一定联系我予以改正 文章目录 1 初识泛型编程2 函数模板2.1 概念2.2 原理2.3 函数模板的实例化2.4 模板参数的匹配原则 3 类模板 1 初识泛型编程 我们之前学过一个交换的Swap函数可以交换两个变量之间的值但是我们后续在使用过程中就会发现如果交换的两个变量的类型改变了我们就必须要在写过一份这样代码的复用率就太低了那么我们在C中为了解决这种代码复用率较低的问题。引用泛型编程这一概念 泛型编程编写一个与类型无关的通用代码让编译器自己进行识别这种是代码复用常见的手段模板就是泛型编程的基础 模板就可以简单理解为是通用的代码以Swap函数为例就是可以根据你传入的数据类型编译器会生成对应类型的交换函数模板可以分为函数模板和类模板 2 函数模板 2.1 概念 函数模板的概念函数模板代表了一个函数家族该函数模板与类型无关在使用时被参数化根据实参类型产生函数的特定类型版本 templatetypename T,typename X…… 返回值类型 函数名(参数列表){}template表示这是一个模板typename关键字是用来定义模板参数的关键字也可以使用class关键字。但是不能用struct来代替class关键字则我们可以写出Swap函数的模板 templatetypename Tvoid Swap(T x,T y) {T tmp x;x y;y tmp; }int main() {int a 10;int b 20;Swap(a,b);char x 0;char y 9;Swap(x, y);return 0; }2.2 原理 看起来我们使用的是同一份代码但实际上我们用的不是同一份代码在编译器编译阶段编译器会根据传入的实参类型来推演生成我们所需要类型的Swap函数比如说我们传入的实参是int类型那么此时编译器就会将模板参数换成int从而调用 2.3 函数模板的实例化 函数模板的实例化分为隐式实例化和显式实例化 上面我们所写的关于Swap函数自己传入实参由编译器自己进行识别推演的我们称为隐式实例化下面我们来介绍一下什么是显式实例化 在函数名后的中指定模板参数类型 我们先来看这样一段代码 template typename P int ADD(P x,P y) {return x y; } int main() {int a 10;double b 20.0;int ret ADD(a, b);return 0; }在编译的时候就会出现报错发现如下问题 这是因为在调用ADD函数时编译器不知道是应该把int转换成double还是把double转换成int此时我们可以利用模板的显式实例化 int ret ADDint(a, b);指明要将double转换成int类型 2.4 模板参数的匹配原则 1️⃣一个非模板函数可以与一个同名的函数模板可以一起存在并且该函数模板还是可以实例化生成同名非模板函数 int ADD(int a, int b) {return a b; } template typename P int ADD(P x,P y) {return x y; } int main() {int a 10;int b 20;ADD(a, b);//调用同名的非模板函数ADDint(10, 20);//编译器会调用特化的模板函数return 0; }2️⃣如果条件都相同对于非模板函数与模板函数会优先调用非模板函数而不会从模板函数中在生成一个实例出来如果模板函数能够产生一个更好匹配的函数那么就会优先调用模板 int ADD(int a, int b) {return a b; } template typename P1,typename P2 int ADD(P1 x, P2 y) {return x y; }int main() {int a 10;int b 20;double c 20.0;ADD(a, b);//优先调用非模板函数ADD(a, c);//优先调用模板函数return 0; }3️⃣模板函数不支持自动类型转换隐式的类型转换比如把double转换成int普通函数支持自动类型转换 3 类模板 格式类型 templateclass T1, class T2, …, class Tn class 类模板名 { // 类内成员定义 }; 之前我们在C语言中学过typedef关键字我们只需要改变typedef后的数据类型就可以更改类中所要存储的数据类型代码如下 typedef int Date;class Stack { private:Date* _a;int _capacity;int _top; public:Stack(int capacity 10){_a new Date[capacity];_capacity capacity;_top 0;} };但是这也是有局限性的因为如果需要多个栈并且多个栈中的存储的数据类型不一样我们也要多写几分类似的代码类模板就可以很好的解决这个问题! template class T class Stack { private:T* _a;int _capacity;int _top;public:Stack(int capacity 4){_a new T[capacity];_top 0;_capacity capacity;} };类模板的实现原理和函数模板的原理是一样的但是类模板是通过显示实例化而不是让编译器自己进行推演 int main() {Stackint st1;//放int的栈Stackdouble st2;//放double的栈Stackchar st3;//放char类型的栈return 0; }注意通过类模板实例化的类不是和普通类一样普通类的类名就是类型实例化的类就是类名数据类型才是类型 类模板中函数的声明与定义写法如下所示 template class T class Stack { private:T* _a;int _capacity;int _top;public:Stack(int capacity 4); };template class T StackT::Stack(int capacity 4)//指定类型作用域 {_a new T[capacity];_capacity capacity;_top 0; }
http://www.pierceye.com/news/948562/

相关文章:

  • 建设银行互联网网站怎么制作小程序软件
  • 做购物网站平台视觉比较好看的网站
  • 网站建设要做什么会计科目网站建设的展望 视频
  • 那种广告式网站怎么做网站为什么具有网络营销价值
  • 包头建站怎么下载网站动态图片
  • 大企业网站建设哪里好qq网站登录入口
  • 手机网站有什么区别是什么wordpress模板2zzt
  • 想做个网站报价蔬菜价格怎么做公司做网站一般多少钱
  • 南宁老牌网站建设公司公司网站搭建教程
  • 网站首页快照更新快常见的电子商务网站网址
  • 外贸网站导航wordpress category 404
  • 漯河市网站建设在线教育网站建设
  • 便宜网站建设模板网站网站做推广需要营业执照
  • 网站地址栏图标文字企业网站设计公司
  • 公司做网站推广有没有用网址导航被更改了怎么换回来
  • 好看云在线网站模板下载 迅雷下载 迅雷下载地址免费建小程序网站
  • 通州网站制作游戏网站域名
  • 医疗网站前置审批要多长时间营销型外贸网站广州
  • 哈尔滨网站建设oeminc购买手表网站
  • 营销推广公司兰州seo培训
  • 南城网站建设公司php购物网站开发实例源码
  • 无锡网站备案百度应用市场
  • 高端房产网站建设上传空间网站
  • 上海城建建设官方网站中企动力网站价格
  • 网站建设中国十强阜阳网站制作公司多少钱
  • 网站建设公司 温州虚拟机电脑网页版
  • 网站建设原理与实践深建市住房和城乡建设局网站
  • 南通建设招聘信息网站平面设计工作室怎么接单
  • 手机网站开发技巧wordpress网站外包
  • 南昌外贸网站建设宿州做企业网站