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

网页编辑排版江苏企业建网站排名优化

网页编辑排版,江苏企业建网站排名优化,公众号平台登陆入口,东莞网站建设哪家C另外一种编程成为 泛型编程 #xff0c;主要利用的技术就是模板 C提供两种模板机制#xff1a;函数模板和类模板 C11中#xff0c;函数模板和类模板都可以设定默认参数#xff0c;传送门 函数模板 一般 typename 和 class 没有区别#xff0c;typename 还有个作用是使…C另外一种编程成为 泛型编程 主要利用的技术就是模板 C提供两种模板机制函数模板和类模板 C11中函数模板和类模板都可以设定默认参数传送门 函数模板 一般 typename 和 class 没有区别typename 还有个作用是使用嵌套依赖类型 template class 类型参数1, class类型参数2, ... 返回值类型 模板名(形参表) {函数体 } templateclass T void MySwap(T a, T b) { } templateclass T void fun() {cout fun函数调用 endl; } void test() {int a 10, b 20;char c x// 1 自动类型推导MySwap(a, b);//MySwap(a, c); // 错误无法推导出同一T类型// 2 显示指定类型MySwapint(a, b);// 3.模板必须确定出T的类型才能使用//fun(); 错误无法自动推导出T的类型funint(); }自动类型推导必须推导出一致的数据类型 T才可以使用模板必须要确定出 T 的数据类型才能使用 普通函数与函数模板的区别 普通函数调用时参数可以发生自动类型转换隐式类型转换函数模板调用时如果利用自动类型推导不会发生隐式类型转换无法推导出同一类型T如果使用显示指定类型的方式就可以发生隐式类型转换 比如传入类型为char的参数自动转换为 int 普通函数与函数模板的调用规则 void myPrint(int a, int b){}templatetypename T void myPrint(T a, T b){}templatetypename T void myPrint(T a, T b, T c){}void test01() { //1、如果函数模板和普通函数都可以实现优先调用普通函数 // 注意 如果告诉编译器 普通函数是有的但只是声明没有实现或者不在当前文件内实现就会报错找不到int a 10;int b 20;myPrint(a, b); //调用普通函数//2、可以通过空模板参数列表来强制调用函数模板myPrint(a, b); //调用函数模板//3、函数模板也可以发生重载int c 30;myPrint(a, b, c); //调用重载的函数模板//4、 如果函数模板可以产生更好的匹配,优先调用函数模板char c1 a;char c2 b;myPrint(c1, c2); //调用函数模板 }为特定的类型提供具体化的模板 class Person{public:Person(string name, int age){this-m_Name name;this-m_Age age;}string m_Name;int m_Age; }; //普通函数模板 templateclass T bool myCompare(T a, T b) {if (a b) return true;return false; } //具体化显示具体化的原型和定意思以template开头并通过名称来指出类型 //具体化优先于常规模板 template bool myCompare(Person p1, Person p2) {if ( p1.m_Name p2.m_Name p1.m_Age p2.m_Age) return true;return false; } void test() {int a 10, b 20;bool ret1 myCompare(a, b); //内置数据类型可以直接使用通用的函数模板Person p1(Tom, 10), p2(Tom, 10); //自定义数据类型不会调用普通的函数模板//可以创建具体化的Person数据类型的模板用于特殊处理这个类型bool ret2 myCompare(p1, p2); }类模板 类模板作用建立一个通用类类中的成员数据类型可以不具体制定用一个虚拟的类型来代表。 template class 类型参数1, class类型参数2, ... class 类模板名(形参表) {类实现 }templateclass NameType, class AgeType class Person{ public:Person(NameType name, AgeType age){this-mName name;this-mAge age;}void showPerson(){cout name: this-mName age: this-mAge endl;} public:NameType mName;AgeType mAge; }; void test01(){// Person p(孙悟空, 1000); // 错误 类模板使用时候不可以用自动类型推导Personstring, intP1(孙悟空, 999);// 指定NameType 为string类型AgeType 为 int类型Person string p(猪八戒, 999); //类模板中的模板参数列表 可以指定默认参数 }类模板与函数模板区别主要有两点 类模板没有自动类型推导的使用方式只能用显示指定类型方式类模板在模板参数列表中可以有默认参数 类模板中成员函数创建时机 类模板中成员函数和普通类中成员函数创建时机是有区别的 普通类中的成员函数一开始就可以创建类模板中的成员函数在调用时才创建 类模板对象做函数参数 templateclass NameType, class AgeType int class Person { public:Person(NameType name, AgeType age){this-mName name;this-mAge age;} public:NameType mName;AgeType mAge; }; //1、指定传入的类型普通函数 void printPerson1(Personstring, int p) {} void test01() {Person string, int p(孙悟空, 100);printPerson1(p); } //2、使用函数模板将类模板的参数模板化 template class T1, class T2 void printPerson2(PersonT1, T2 p) {cout T1的类型为 typeid(T1).name() endl;cout T2的类型为 typeid(T2).name() endl; } void test02() {Person string, int p(猪八戒, 90);printPerson2(p); } //3、使用函数模板直接将整个类模板化 templateclass T void printPerson3(T p) {cout T的类型为 typeid(T).name() endl; } void test03() {Person string, int p(唐僧, 30);printPerson3(p); }类模板案例 案例描述: 实现一个通用的数组类要求如下 可以对内置数据类型以及自定义数据类型的数据进行存储将数组中的数据存储到堆区构造函数中可以传入数组的容量提供对应的拷贝构造函数以及operator防止浅拷贝问题提供尾插法和尾删法对数组中的数据进行增加和删除可以通过下标的方式访问数组中的元素可以获取数组中当前元素个数和数组的容量 #include myArray.hpp #include string #include iostream// 1. 内置数据类型 void printInt(myarrint arr) {for (int i 0; i arr.getSize(); i) {cout arr[i] ;}cout endl; } void test1() {myarrint v(10);for (int i 0; i 10; i) {v.Push_back(i * i);}printInt(v); }// 2. 自定义数据类型 class Person { public:Person() {}Person(string name, int age) {this-name name;this-age age;}string name;int age; }; void printPerson(myarrPerson arr) {for (int i 0; i arr.getSize(); i) {cout arr[i].name arr[i].age endl;} } void test2() {Person a(fu1, 20), b(fu2, 22), c(fu3, 24);Person d(p1, 11), e(p2, 14);myarrPerson v(10);v.Push_back(a); v.Push_back(b); v.Push_back(c);v.Push_back(d); v.Push_back(e);printPerson(v); } int main() {test1();test2();return 0; }
http://www.dnsts.com.cn/news/65470.html

相关文章:

  • 做竹鼠网站苏州定制网站建设
  • 怎么建个网站wordpress 定宽
  • 企业网站建设优化网站开发的选题审批表
  • 创建网站数据库制作手机端网站
  • 网站建设结构表2008 iis 添加 网站 权限设置
  • 网站备案成功后可以改吗怎么做触屏版网站
  • 做网站公司电话好点得手机网站托管
  • 产品设计的8个方法网站优化公司信息推荐
  • 张家界做网站找谁高端大气公司名称
  • 企业为什么要做流程seo 网站推广
  • apache 静态网站广州网站建设方案案例
  • 网络工程师自学网站塘沽网站建设公司
  • 一家专门做特卖的网站手机版网站建设熊猫建站
  • 网站备案 假通信地址网站后台上传图片步骤
  • 山东省住房和城乡建设局网站燕郊网站制作
  • 全屏网站模板网站怎么做微信接口
  • 网站制作营销型域名服务器搭建
  • 怎么做学校子网站在哪里建设网站
  • php开发网站项目心得服装网站设计
  • 安论坛网站建设深圳网站定制建设
  • 网站建设业务员好做吗百度小程序登录
  • 简洁游戏企业网站平面设计速成班
  • win8风格手机网站模板网站域名查企业邮箱
  • 仁怀市城乡建设网站php做网站都需要学什么
  • 公司有网站域名 如何做网站做网站的需求调研
  • 枣庄高端品牌网站建设案例淮北市重点工程建设局网站
  • wordpress 不能发布成品网站seo
  • 徐州专业做网站较好的公司动漫设计自考大专
  • 龙游网站建设承德在线招聘
  • 淮安建设机械网站网站建设渠道员