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

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;

 

posted @ 2024-08-20 18:19  PangCoder  阅读(227)  评论(0)    收藏  举报