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;
标签:struct,two,C++,typeStruct,枚举,template,声明 From: https://www.cnblogs.com/pangcoder66/p/18370027