1.簡單說明
struct + template的組合可以讓我們使用同一個結構體名稱(注意:只是名稱相同,但是本質上已經不同了),實現不同的結構體功能,可以將其理解為設計模式中的工程模式。
2.程式碼示例
首先,宣告一個列舉型別,用於區別結構體,然後使用template+struct,宣告一個結構體,只宣告不實現
//為了方便講解我使用列舉型別
//簡單定義一個列舉型別
enum type
{
one,
two,
three
};
//使用template+struct 宣告一個結構體
//注意只宣告,不具體寫實現,沒有大括號
template<type tp>
struct typeStruct;
然後,實現兩個不同的結構體
template<>
struct typeStruct<type::one>
{
bool a;
};
template<>
struct typeStruct<type::two>
{
int a;
};
最後,例項化結構體
//宣告一個 one 型別的
typeStruct<type::one> one;
//宣告一個 two 型別的
typeStruct<type::two> two;
//隨便寫的
two.a = one.a;