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

导购网站免费推广wordpress 导入 乱码

导购网站免费推广,wordpress 导入 乱码,微信小程序登录授权,网页如何发布到服务器上1.模板 #xff08;1#xff09;简介 /** C提高编程* 本阶段主要针对C泛型编程 和 STL技术 做详细讲解#xff0c;探讨C更深层的使用** 1.模板* 概念#xff1a;模板就是建立通用的模具#xff0c;大大提高复用性** 特点#xff1a;* 模板不可以直接使用#xff…1.模板 1简介 /** C提高编程* 本阶段主要针对C泛型编程 和 STL技术 做详细讲解探讨C更深层的使用** 1.模板* 概念模板就是建立通用的模具大大提高复用性** 特点* 模板不可以直接使用它只是一个框架* 模板的通用并不是万能的*/ int main() {return 0; }2函数模板 /** 函数模板* 建立一个通用函数其函数返回值类型和形参类型可以不具体指定用一个虚拟的类型来代表。* 语法templatetypename T* 函数声明或者定义* 解释template--声明创建模板* tempname --表明其后面的符号是一种数据类型可用class替换* T --通用的数据类型名称可以替换通常为大写字母** 隐式模板 mySwap(a,b);* 显示模板 mySwapint(a,b);** 注意事项* 自动类型推导需要推导出一致的数据类型T才可以使用* 模板必须要确定出T的数据类型才可以使用。*/ //函数模板 templatetypename T //声明一个模板告诉编译器后面代码中紧跟着的T不要报错T是一个通用数据类型 void mySwap(T a,T b){T tempa;ab;btemp; } templatetypename T void func(){coutfun 调用endl; } void test01(){int a10;int b20;//1.自动类型推导mySwap(a,b);//2.显示指定类型mySwapint(a,b);coutaaendl;coutbbendl; } int main() {test01();funcint();return 0; } 3函数模板案例 /** 函数模板案例** 描述* 利用函数模板封装一个排序的函数可以对不同数据类型素组进行排序* 排序规则从大到小排序算法为选择排序* 分别利用char数组和int数组进行测试**/templateclass T void mySort(T arr[],int len){for(int i0;ilen;i){int maxi; //认定最大值得小标for(int ji1;jlen;j){//认定的最大值比遍历出的数组要小说明j下表的数值大if(arr[max]arr[j]){maxj;}}if(max!i){T temparr[max];arr[max]arr[i];arr[i]temp;}} }//冒泡排序 templatetypename T void sayArray(T arr[],int len) {cout 数组元素为: sizeof(arr) endl;for (int i 0; i len; i) {cout arr[i] endl;} }void test01() {char charArr[]abcdef;int numsizeof (charArr)/ sizeof(char);mySort(charArr,num);sayArray(charArr,num); }int main() {test01();return 0; } 4普通模板和函数模板的调用规则 /** 普通函数和函数模板的调用规则* 如果函数模板和普通函数都可以实现优先调用普通函数* 可以通过空模板参数列表来强制调用函数模板 myPrint(2,2);* 函数模板也可以发生重载* 如果函数模板可以产生更好的匹配优先调用函数模板*/void myPrint(int a, int b) {cout 调用的普通函数 endl; }templatetypename T void myPrint(T a, T b) {cout 调用的模板 endl; }//函数模板 重载 templatetypename T void myPrint(T a, T b, int) {cout 调用的模板 endl; }int main() {myPrint(1, 2);//空模板参数列表强制调用函模板myPrint(2, 2);//如果函数模板产生更好的匹配优先调用函数模板myPrint(1, a);return 0; } 5模板的局限性 /** 模板的局限性* 模板的通用性并不是万能的* 有些特定数据类型需要用具体化方式做特殊实现*/class Person { public:string name;int age;Person(string name, int age) {this-name name;this-age age;}bool operator(Person p) {coutoperator 函数被调用了endl;if (this-name p.name this-age p.age) {return true;} else {return false;}} };//对比两个数据是否相等 templateclass T bool myCompare(T a, T b) {if (a b) {return true;} else {return false;} }void test01() {int a 20;int b 20;bool ret myCompare(a, b);if (ret) {cout ab endl;} else {cout a!b endl;} }void test02() {Person p1(张三, 10);Person p2(李四, 10);bool ret myCompare(p1, p2);cout p1p2: ret endl; }int main() {test01();test02();return 0; }7类模板 1类模板开胃菜 /** 类模板* 类模板语法* 建立一个通用类类中的成员 数据类型可以不具体定制用一个虚拟的类型来代表。** 语法* templatetypename T* 类* 解释* template -- 声明创建模板* typename -- 表明其后面的符号是一种数据类型可以用class代替* T -- 通用的数据类型名称可以替换通常为大写字母**///类模板 templateclass nameType, class ageType class Person { public:nameType name;ageType age;Person(nameType name, ageType age) {this-name name;this-age age;}void showPerson() {cout name this-name ;age age endl;} };void test01() {Personstring, int p1(孙大圣, 28);p1.showPerson();Person p2(孙大圣2, 282);p2.showPerson(); }int main() {test01();return 0; }2类模板与函数模板的区别 /** 类模板和函数模板区别* 1.类模板没有自动类型推导的使用 自己使用的版本为C20,以支持自动推导* 。类模板在模板参数列表中可以有默认参数**///类模板与函数模板的区别 templateclass nameType, class ageTypestring class Person { public:nameType name;ageType age;Person(nameType name, ageType age) {this-name name;this-age age;}void showPerson() {cout name this-name ;age age endl;} };//1.类模板没有自动类型推导使用方式 void test01() {Person p1(孙悟空, 1000); }//2.类模板在模板参数列表中可以有默认参数 void test02() {Person p2(aaa, 123);p2.showPerson();Person p3(bbb, 234);p3.showPerson(); }int main() {test02();return 0; }3类模板中成员函数创建时机 /** 类模板中成员函数创建时机** 类模板中成员函数和普通类中成员函数创建时机是有区别的* 普通泪中的成员函数一开始就可以创建* 类模板中的成员函数在调用时候才创建**/class Person1 { public:void showPerson1() {cout Person1 endl;} };class Person2 { public:void showPerson2() {cout Person2 show endl;} };templateclass T class myClass { public:T obj;//类模板中的成员函数void func1() {obj.showPerson1();}void func2() {obj.showPerson2();} };void test01() {myClassPerson1 m;m.func1();//m.func2(); //报错提示没有这个方法myClassPerson2 m2;m2.func2(); }int main() {test01();return 0; } 4类模板对象做函数参数 ** 类模板对象做函数参数** 学习目标类模板实例化出的对象向函数传参的方式** 三种方式* 1.指定传入的类型直接显示对象的数据类型* 2.参数模板化:将对象中的参数变为模板进行传递* 3.整个类模板化将这个对象类型 模板化进行传递**/templateclass T1, class T2 class Person { public:T1 name;T2 age;Person(T1 name, T2 age) {this-name name;this-age age;}void showPerson() {cout name name ;age age endl;} };//1.指定传入类型 void printPerson1(Personstring, int p) {p.showPerson(); }void test01() {Personstring, int p(孙悟空, 100);printPerson1(p); }templateclass T1, class T2 void printPerson2(PersonT1, T2 p) {p.showPerson();cout T1类型为: typeid(T1).name() endl;cout T2类型为: typeid(T1).name() endl; }//2.参数模板花 void test02() {Personstring, int p(猪八戒, 90);printPerson2(p); }templateclass T void printPerson3(T p) {p.showPerson(); }//3.整个类模板化 void test03() {Personstring, int p(唐山, 20);printPerson3(p); }int main() {cout test01() endl;test01();cout test02() endl;test02();cout test03() endl;test03();return 0; }5类模板与继承 /** 类模板与继承** 当类模板碰到继承时需要注意* 当子类继承的父类是一个类模板时子类在声明的时候要指定出父类中的T的类型* 如果不指定编译器无法给子类分配内存* 如果想灵活指定出父类中T的类型子类也需要变为类模板**///类模板与继承 templateclass T class Base {T m; };//class Son:public Base{ //错误必须要知道父类中的T类型才能继承给子类 // //};class Son : public Baseint {};void test01() {Son son; }//如果想灵活指定父类中T类型子类也需要变类模板 templateclass T1, class T2 class Son2 : public BaseT2 { public:T1 obj;Son2() {cout T1类型为: typeid(T1).name() endl;cout T2类型为: typeid(T2).name() endl;} };void test02() {Son2int, char s2; }int main() {test01();test02();return 0; }6类模板成员函数类外实现 /** 类模板成员函数类外实现* 学习目标能够掌握类模板中的成员函数类外实现*/templateclass T1,class T2 class Person{ public:T1 name;T2 age;Person(T1 name,T2 age);void showPerson(); };//类模板 成员函数类外实现 templateclass T1,class T2 PersonT1,T2::Person(T1 name,T2 age){this-namename;this-ageage; } //成员函数的类外实现 templateclass T1,class T2 void PersonT1,T2::showPerson(){cout姓名:name;年龄ageendl; }void test01(){Personstring,int p(AAA,18);p.showPerson();Person p2(AAA,18);p2.showPerson(); }int main() {test01();return 0; } 7类模板与友元 /** 类模板与友元** 学习目标* 掌握类模板配合友元函数的类内和类外实现* 全局函数类内实现 -- 直接在类内声明友元即可* 全局函数类外实现 -- 需要提前让编译器知道全局函数的存在*///让编译器提前知道Person类的存在 templateclass T1, class T2 class Person;//类外实现 //加空模板参数列表 //如果全局函数 是类外实现需要让编译器提前知道这个函数的存在 templateclass T1, class T2 void printPerson2(PersonT1, T2 p) {cout 类外实现姓名: p.name ;年龄: p.age endl; }//通过全局函数打印Perosn信息 templateclass T1, class T2 class Person {//全局函数 类内实现friend void printPerson(PersonT1, T2 p) {cout 姓名: p.name ;年龄: p.age endl;}//全局函数 类外实现friend void printPerson2();public:T1 name;T2 age;Person(T1 name, T2 age) {this-name name;this-age age;} };//1.全局函数类内实现 void test01() {Person p1(Tom, 18);printPerson(p1); }//1.全局函数类外实现 void test02() {Person p2(Dog, 22);printPerson(p2); }int main() {test01();test02();return 0; } 8类模板案例 未学习 https://www.bilibili.com/video/BV1et411b73Z?p183
http://www.zqtcl.cn/news/655705/

相关文章:

  • 使用循环视频做背景的网站青岛网站推广的价格
  • 邯山区建设局网站上海公司招聘
  • 做网站沈阳本地网站忧化 优帮云
  • 网上购物网站开发的目的建筑投标网站
  • 网站开发费用无形资产陕西省住房和城乡建设网站
  • 网站分析与优化如何编程写代码
  • 专业做网站企业百度站长管理平台
  • 网站组建 需求分析阿里巴巴网站装修
  • 网站建设怎么弄轮换图片网站制作公司dedecms
  • 南阳企业网站建设做兼职网站有哪些
  • ps做网站的优点国际设计师网站有哪些
  • 学校网站建立安阳市网站建设
  • 邢台做网站流程摄影工作室网站设计
  • 掉关键词网站重大军事新闻
  • 建材网站建设功能方案上海建筑室内设计有限公司
  • 高端企业网站设计公司怎么帮公司做网站建设
  • 湖北专业网站建设维修电话企业网络管理方案
  • 做网站外链wordpress网页怎么上传
  • wordpress站点优化石景山网站开发
  • 企业网站建设的流程店铺推广引流
  • 北京网站优化wyhseo信息化建设杂志社官方网站
  • 网站图片处理方案动漫制作这个专业怎么样
  • 做写手哪个网站好黄页网站建设黄页网站建设
  • 多语言企业网站免费模板网站哪个好
  • 拟一份饰品网站建设合同襄樊门户网站建设
  • 你对网站第一印象受欢迎的广州做网站
  • 网站开发项目的需求分析浙江省城乡建设网站证件查询
  • 整站seo定制简单 大气 网站模版
  • 网站界面设计策划书怎么做云匠网订单多吗
  • html教程 pdf网站建设优化兰州