• 第二十三模板 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;
    }*/
    

      

  • 相关阅读:
    sock编程
    Exceptional c++
    sort
    实现UDP高效接收/响应
    Iterator invalidation(迭代器失效)
    php 判断一个点是否在一个多边形区域内
    PHP 如何在txt里查找包含某个字符串的那一行?
    php 实现栈与队列
    微信支付 接口
    文章添加,删除,修改,分页列表
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2711688.html
Copyright © 2020-2023  润新知