zoukankan      html  css  js  c++  java
  • 模板的特化与偏特化

    /*
     * special_2.cpp
     *
     *  Created on: 2013年8月4日
     *      Author: Administrator
     */
    
    #include <iostream>
    #include <typeinfo>
    #include <string>
    
    using namespace std;
    template <typename T>
    class Type{
    public:
    	static string name(){
    		return typeid(T).name();
    	}
    };
    
    //特化
    template <>
    class Type<bool>{
    public:
    	static string name(){
    		return "bool  !!!";
    	}
    };
    
    template <>
    class Type<int>{
    public:
    	static string name(){
    		return "int ~~~~";
    	}
    };
    
    
    template <>
    class Type<double>{
    public:
    	static string name(){
    		return "double ...";
    	}
    };
    
    template <>
    class Type<char>{
    public:
    	static string name(){
    		return "char  ";
    	}
    };
    
    //偏特化
    template <typename T>
    class Type<T*>{
    public:
    	static string name(){
    		return Type<int>::name() + " pointer";
    	}
    };
    
    int main(){
    	cout<<Type<double>::name()<<endl;
    	cout<<Type<int>::name()<<endl;
    	cout<<Type<char>::name()<<endl;
    	cout<<Type<int*>::name()<<endl;
    	cout<<Type<bool>::name()<<endl;
    }
    


  • 相关阅读:
    今日头条、Face++开发岗面经
    美团offer面经
    成都百度测试开发一二面面经
    美团四面面经
    久邦数码(3G门户)面试
    58 面试
    好未来提前批
    百度提前批
    新浪面经
    Java Programs
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3236912.html
Copyright © 2011-2022 走看看