1. 程式人生 > 實用技巧 >關於c++模板特例化測試

關於c++模板特例化測試

模板特例化也叫模板偏特化,乍聽起可能有點摸不著頭腦,實際上字如其名,他就是模板的一種特例存在;比如在一個類中,模板引數接受指標型別的時候需要特殊處理,則我們可以將指標版本的那一份專門抽調出來;話不多說直接上程式碼

//標頭檔案
#ifndef __Template_Hpp_
#define __Template_Hpp_
#include <stdio.h>
#include <iostream>
using namespace std;

//通用版本 template <typename T> class My_Class { public: My_Class(T key, int value) :key(key), value(value) { printf("the one test----->\n"); } public: int value; T key; void print_Info() { std::cout << "the key is:" << key << " value is:" << value << std::endl; } };
//指標版本 template <typename T> class My_Class<T*> { public: My_Class(T* key, int value) :key(key), value(value) { printf("the two test----->\n"); } public: int value; T* key; void print_Info() { std::cout << "the key is:" << *key << " value is:" << value << std::endl; } }; #endif

  測試程式碼如下:

  

  控制檯列印輸出:

  

  可以看出,m_test呼叫的是通用版本,m_test_Ex呼叫的是指標版本;