zoukankan      html  css  js  c++  java
  • 第二十三模板 12约束模板 简单

    //第二十三模板 12约束模板
    //结束模板的大意,即是对模板的数据和方法有要求
    /*
    template<class T>
    T max(T a, T b)
    {
        return (a>b)?a:b;
    }
    假如比较的类型是两个指向字符串的指针,则比较运算符>比较的是两个地址而不是数值
    
    char* max(char *a, char *b)
    {
        if(strcmp(a,b) > 0)
    	   return a;
    	else
    	   return b;
    }
    该函数具体化了max函数的两个参数和功能,该函数的两个参数是char*,它的功能是使用strcmp函数比较指针所指向的字符串
    而不是指针,这个特定的用来替换函数模板的函数,我们把它叫做特定模板函数,或者是具体化模板实例
    
    必须区分的几个术语,
    函数模板是模板声明
    模板函数是模板实例,也就是根据函数模板生成的函数
    而特定模板函数,则是替换了函数模板的实例,也就是根据具体类型已经生成好了的函数
    */
    /*#include <iostream>
    #include <string>
    using namespace std;
    template<class T>
    T Imax(T a, T b)
    {
        return (a>b)?(a):(b);
    }
    char *Imax(char *a, char *b)
    {
    	if(strcmp(a,b)>0){
    	   return a;
    	}else{
    	   return b;
    	}
    }
    int main()
    {
    	int x=2, y=3;
    	cout<<Imax(x,y)<<endl;
    	//cout<<max(x,y)<<endl; //这里与C++类库中的max重载了,不合法
    	char*ch1 = "abc";
    	char*ch2 = "def";
    	cout<<Imax(ch1,ch2)<<endl;
    	return 0;
    }*/
    

      

  • 相关阅读:
    数据提交
    Python网页信息抓取
    Python语法学习
    Elasticsearch5.x 升级-插件
    LeetCode 33 搜索旋转排序数组
    按之字形顺序打印二叉树
    股票的最大利润
    LeetCode 1143 最长公共子序列
    对称的二叉树
    两个链表的第一个公共结点
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2711688.html
Copyright © 2011-2022 走看看