[C++] template+struct 組合使用小技巧

PangCoder發表於2024-08-20

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;

相關文章