程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 利用模板在編譯時決定一個變量的類型

利用模板在編譯時決定一個變量的類型

編輯:關於C語言

使用模板可以完成很多看起來很不可思議的事情,比如下面這個,可以在編譯時實現靜態類型判斷

 

#include <string> 
#include <iostream> 
 
template<typename T> 
class TypeChecker; 
 
template<> class TypeChecker<std::string> 

        public: 
 
                static const int TYPE = 1; 
}; 
 
template<> class TypeChecker<const char*> 

        public: 
 
                static const int TYPE = 2; 
}; 
 
template<> class TypeChecker<char*> 

        public: 
 
                static const int TYPE = 3; 
}; 
 
int main() 

        std::string dummy = ""; 
        if(TypeChecker<typeof(dummy)>::TYPE == 1) 
        { 
                std::cout << "std::string" << std::endl; 
        } 
 
        char* data = ""; 
        if(!TypeChecker<typeof(data)>::TYPE == 2) 
        { 
                std::cout << "const char*" << std::endl; 
        } 
 

從這裡可以看到,模板基本上就是將你所需要的所有情況都定義一次,然後讓編譯器來選擇哪個適用。


摘自 無心雲

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved