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

泉州网站建设托管wordpress题库制作

泉州网站建设托管,wordpress题库制作,怎么做钓鱼网站,建设工程信息在哪个网站目录 前言 一、函数模板 1.定义 2.函数模板的实现 3.模板函数的实例化 4.模板参数的省略 1.函数模板的实参推导 2.类模板的实参推导 3.默认模板参数 4.特殊情况:无法推导的模板 5.推导失败的情况 二、类模板 1.概念和定义 2.类模板定义 3.类模板的使用 4.类模板… 目录 前言 一、函数模板 1.定义 2.函数模板的实现 3.模板函数的实例化 4.模板参数的省略 1.函数模板的实参推导 2.类模板的实参推导 3.默认模板参数 4.特殊情况:无法推导的模板 5.推导失败的情况 二、类模板 1.概念和定义 2.类模板定义 3.类模板的使用 4.类模板的定义格式 前言 这篇文章主要介绍C中的模板。 一、函数模板 1.定义 模板是一系列相关函数的模型或样板这些函数的源代码形式相同只是所针对的数据类型不同。 在开发过程中我们经常遇到这种情况有两个或者两个以上的函数其功能是相同的仅仅是数据类型的不同。例如: int add(int a,int b){return a b; } int add(float a,float b){return a b; }double add(double a,double b){return a b; } 上面的三个函数都实现了对数据的加法运算唯一不同的是参数类型不同。这样的函数可以采用函数模板实现简便化。 2.函数模板的实现 函数模板的格式如下 template 模板形参声明 函数声明 模板形参是由一个或者多个模板形参组成的如果是多个需要用逗号隔开。每个模板具有以下几种形式 1.typename 参数名 2.class 参数明 3.类型修饰参数名 对于上述实例中的 add 函数我们可以如下定义 template typename T T add(T a, T b) {return a b; }3.模板函数的实例化 在实际开发过程中我们使用实参的实际类型代替虚拟类型即可。 #include iostream #include iomanip // 需要包含这个头文件来设置精度 using namespace std;template typename T T add(T a, T b) {return a b; }int main() {int a 10, b 20;cout a b add(a, b) endl;// 使用浮点数并设置精度double c 10.0, d 20.0;cout fixed setprecision(2); // 设置保留两位小数cout c d add(c, d) endl;double e 10.00, f 20.00;cout e f add(e, f) endl;return 0; }4.模板参数的省略 在C中模板实参可以在某些情况下进行省略称为 模板实参推导。这一特性允许编译器根据传递给函数或类的参数自动推导出模板的类型。以下是几种常见的模板实参省略场景         1.函数模板的实参推导 对于函数模板编译器可以根据调用时传递的函数参数来推导模板实参。例如 template typename T T add(T a, T b) {return a b; }int main() {int x 5, y 10;// 不需要显式指定类型编译器会推导T为intcout add(x, y) endl; } 在上述例子中add(x, y) 调用时编译器会根据 x 和 y 的类型int自动推导 T 的类型为 int。 2.类模板的实参推导 在C17之前类模板的实参必须显式指定但从C17开始可以省略某些类模板的实参。编译器会从构造函数参数中推导出模板实参。例如 template typename T T add(T a, T b) {return a b; }int main() {int x 5, y 10;// 不需要显式指定类型编译器会推导T为intcout add(x, y) endl; } 在这个例子中Box box(123); 中并没有显式地指定 Boxint编译器根据传递的值 123 推导出 T 的类型为 int。 3.默认模板参数 你可以为模板提供默认的模板参数这样在不提供实参时会使用默认值。例如 template typename T int T multiply(T a, T b) {return a * b; }int main() {cout multiply(3, 4) endl; // T被推导为int因为int是默认类型cout multiplydouble(3.5, 2.5) endl; // T显式为double } 在这个例子中multiply(3, 4) 直接使用了默认的模板参数 T int而 multiplydouble 明确指定了模板参数。 4.特殊情况:无法推导的模板 并非所有情况下模板都可以自动推导特别是当模板类型不直接与参数关联时。例如某些模板的类型依赖于非参数部分时编译器无法自动推导这时需要显式指定模板实参。 template typename T, typename U void printPair(T a, U b) {cout a and b endl; }int main() {printPair(1, hello); // 编译器能够推导T为intU为const char*printPairint(test, 100); // 必须显式指定其中一个模板参数 } 5.推导失败的情况 有时候模板的推导会失败特别是类型不匹配或涉及复杂的类型转换时。此时需要显式指定模板实参来避免推导失败。 二、类模板 1.概念和定义 类模板是通过引入模板参数来定义类的。在类模板的声明中使用 template 关键字标识模板类型参数然后在类的定义中可以使用这些模板参数就像使用普通的数据类型一样。 2.类模板定义 一个简单的类模板可以按如下方式定义 template typename T class Box { private:T value; public:Box(T val) : value(val) {}T getValue() {return value;} };在上述代码中T 是一个模板参数可以被替换为任何具体的数据类型例如 int、double 或 string。当我们使用这个类时必须在实例化类时提供一个具体的数据类型。 3.类模板的使用 在这个例子中Boxint 和 Boxdouble 分别创建了 int 和 double 类型的对象并且它们可以分别存储 int 和 double 类型的数据。        ​​​​​​​         int main() {Boxint intBox(100); // 使用int类型Boxdouble doubleBox(100.5); // 使用double类型std::cout intBox value: intBox.getValue() std::endl;std::cout doubleBox value: doubleBox.getValue() std::endl;return 0; } 4.类模板的定义格式 类模板的定义格式如下 template typename T class ClassName {// 成员变量和方法使用模板参数T }; 类模板的优势在于能够通过一种通用方式处理不同类型的数据使代码更具通用性和灵活性适用于需要同样逻辑但适用于不同数据类型的情况。
http://www.w-s-a.com/news/804090/

相关文章:

  • 如何在建设部网站补录项目单仁牛商
  • 社保网站上做减员一直不审核软件程序开发
  • 网站友情链接购买天元建设集团有限公司资质
  • 南山商城网站建设哪家技术好株洲seo网站优化软件
  • 服务类网站建设18款禁用网站app直播
  • 电子商务网站建设需要物流网站开发公司
  • 网站的系统建设方式有哪些内容宁波网站建设公司
  • 网站开发 技术方案品牌建设总要求
  • 中卫网站建站设计seo专员的工作内容
  • h5商城网站是什么意思.net 网站开发框架
  • 西安网站改版的公司软件外包是什么意思
  • 网站建设了解眉山网站优化
  • 做网站用php还是node如何申请网站域名流程
  • 销售公司怎么做网站删除wordpress
  • 毕节网站怎么做seohtml代码特效银河系
  • 淄博品质网站建设网站引导页案例
  • 网站建设虚拟空间小豹子韬韬是哪个网站做的
  • 网络司网站如何建立公司网站建议和规则
  • 织梦网站模板后台密码找回企业vi设计公司性价比高
  • php 爬取网站所有链接传奇手游发布网站
  • 免费软文网站wordpress中文名注册
  • 企业网站建设研究目的意义怎样设计一个公司网站
  • 怎么架构网站便民信息发布平台
  • 网站 建设 现状网站推广合同需要缴纳印花税吗
  • 熊猫头表情包制作网站wordpress 缺省目录
  • 网站浏览图片怎么做的群晖wordpress升级5.0
  • 25个优秀个人网站设计模板网站建设定位分析论文
  • 在线网站备案站长seo综合查询工具
  • 网站根 html网站建设行业数据
  • 网站公司做的网站有最字设计说明室内设计