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

网站应具有的功能模块今科网站建设费用

网站应具有的功能模块,今科网站建设费用,广西南宁建设银行招聘网站,哪些网站可以做图片链接函数模板是C中一种通用编程技术#xff0c;允许编写可以适用于多种数据类型的函数#xff0c;而无需为每种数据类型编写不同的函数。函数模板通过参数化类型来实现通用性#xff0c;可以在不同情况下自动生成具体的函数代码。 目录 1.函数模板的定义 2.函数模板的使用 …        函数模板是C中一种通用编程技术允许编写可以适用于多种数据类型的函数而无需为每种数据类型编写不同的函数。函数模板通过参数化类型来实现通用性可以在不同情况下自动生成具体的函数代码。 目录 1.函数模板的定义 2.函数模板的使用  3.函数模板与普通函数 4.函数模板的局限性  1.函数模板的定义 函数模板以 template 关键字开始后面跟着尖括号其中包含一个或多个类型参数。 template typename T T myMax(T a, T b) {return (a b) ? a : b; }如果我需要再对两个float类型的变量进⾏交换是不是还需要再写⼀个函数呢需要交换的变量的类型越多我就越需要写更多的重复的函数而且⼀旦需求变更了交换的逻辑需要做⼀些小小的改变。那么每⼀个函数我都得修改⼀下非常的复杂         我如果能够设计⼀个通用的函数能够把类型当作参数传递到这个函数中就可以简化很多很多的⼯作了这就是函数模板  // 需求我想要设计⼀个函数实现两个int变量的值的交换 void mySwap(int a, int b) {int tmp a;a b;b tmp; } // 需求我想要设计⼀个函数实现两个double变量的值的交换 void mySwap(double a, double b) {double tmp a;a b;b tmp; } templatetypename T void mySwap(T a, T b) {T tmp a;a b;b tmp; } 2.函数模板的使用  templateclass T void mySwap(T a, T b) {T tmp a;a b;b tmp; } int main() {int a 10, b 20;double x 3.14, y 0.99;// 1. 显式指定类型mySwapint(a, b);// 2. 可以⾃动根据实参的类型进⾏推导mySwap(a, b);    // 这⾥调⽤的mySwap中类型T被推导为int类型mySwap(x, y);    // 这⾥调⽤的mySwap中类型T被推导为double类型// 注意事项: 类型推导的时候需要保证⼀致性。不满⾜⼀致性⽆法推导。// 例如 mySwap(a, y);  // 第⼀个实参a是int类型推导T的类型为int第⼆个实参y是double类型推导T的类型为double 不⼀致return 0; } 3.函数模板与普通函数 在以下示例中add 函数模板可以处理 int 和 double 类型的参数而普通函数 add 仅能处理 int 类型参数。函数模板实现了更广泛的通用性和类型安全性。 // 函数模板 template typename T T add(T a, T b) {return a b; }// 普通函数 int add(int a, int b) {return a b; }int main() {int x 5, y 10;double p 3.14, q 2.71;int result1 add(x, y); // 调用普通函数double result2 add(p, q); // 调用函数模板return 0; }4.函数模板的局限性  函数模板虽然很通用但并不是万能的有的时候也会出现不适配的情况。 templateclass T bool compare(const T t1, const T t2) {return t1 t2; } 对于上述的模板函数来说如果是比较整形、浮点型甚至字符型的数据是没有问题的。可是如果我们设置为person类呢两个person对象无法进行大小比较这里也就自然的出现了问题。 那么如何解决这样的问题呢 1. 重载运算符重载运算符。 2. 通过函数模板的重载来解决。         函数模板的重载就是为了解决特定类型的对象的问题通过函数模板的重载可以为这些特定的数据类型提供具像化的模板。 class Person { public:int age; }; templateclass T bool compare(const T t1, const T t2) {return t1 t2; } template bool comparePerson(const Person p1, const Person p2) {return p1.age p2.age; } int main() {Person p1;p1.age 15;Person p2;p2.age 12;cout compare(p1, p2) endl;return 0; } 由于我们在特化的 compare 函数中定义了如何比较两个 Person 对象的年龄属性因此在 main 函数中调用 compare(p1, p2) 时实际上是调用了特化版本的 compare 函数返回的结果是根据年龄比较的结果。
http://www.pierceye.com/news/412670/

相关文章:

  • 专业网专业网站建设展示网站建设的ppt
  • 江淮网站开发商城网站 html模板
  • 上海网站制作电话淄博免费网站建设
  • 做动态在网站需要学什么宁波网站建设用什么软件
  • 靖江 建设局网站wordpress小工具缓存
  • 搜索网站的软件郑州企业展厅设计公司
  • 上海建设局官方网站做外包网站的公司是怎样的
  • 网站开发ppt方案模板wordpress如何导出数据字典
  • 网站加上视频对seo影响wordpress打开xml-rpc
  • 个人网站建设分几个步走单页面网站多少钱
  • 自己做网站详细步骤保定网站建设方案优化
  • 传奇手游网站大全9377公司网站建设安全的风险
  • 昆明建设厅网站企业管理咨询上班好吗
  • 福州做网站销售公司用vs2010做网站的好处
  • 深圳企业建站平台网站备案费一般是多少
  • 郑州哪里有做网站郑州货拉拉
  • 汽车网页制作素材滕州网站搜索引擎优化
  • 网站备案地点郓城做网站
  • 专业的外贸网站建设公司价格网站如何制作浙江
  • 东莞运营推广网站建设费用微信小程序开发需要多少钱?
  • 福州专业网站搭建排名沈阳教做网站
  • 公益网站建设方案代码需求网站
  • php网站开发步骤苏州知名网站制作开发
  • 万网免费建企业网站长春搜索引擎优化
  • 网站如何建设数据库网站制作自己接单
  • 为什么有的网站点不开免费的png素材网
  • 百度多久收录网站整体vi设计公司
  • 卡盟网站怎么做图片大全wordpress企业主题餐饮
  • 网站建设培训公司网站跳出率高
  • 电脑网站手机版怎么做网站建设平台哪个公司好