模板专门化不能满足我的需要 我是C++模板中的新手。
我有一个模板结构模板专门化不能满足我的需要 我是C++模板中的新手。,c++,templates,template-specialization,C++,Templates,Template Specialization,我有一个模板结构AAA,它有一个名为field的字段。当有人用int调用它时,比如AAA,我希望有一个名为second\u field的附加字段。有人能告诉我如何修复这个代码吗 template<typename T> struct AAA { T field; }; template<typename T=int> struct AAA<int> { int second_field; }; int main() { AAA<
AAA
,它有一个名为field
的字段。当有人用int调用它时,比如AAA
,我希望有一个名为second\u field
的附加字段。有人能告诉我如何修复这个代码吗
template<typename T>
struct AAA
{
T field;
};
template<typename T=int>
struct AAA<int>
{
int second_field;
};
int main()
{
AAA<double> ad;
ad.field=3.14;
AAA<int> ai;
ai.second_field=5;
return 0;
}
模板
结构AAA
{
T场;
};
模板
结构AAA
{
int第二个_字段;
};
int main()
{
AAA广告;
ad.field=3.14;
AAA ai;
ai.第二个_字段=5;
返回0;
}
对于所谓的模板专门化,语法与代码中的略有不同:
template<>
struct AAA<int>
{
int second_field;
};
模板
结构AAA
{
int第二个_字段;
};
对于所谓的模板专门化,语法与代码中的略有不同:
template<>
struct AAA<int>
{
int second_field;
};
模板
结构AAA
{
int第二个_字段;
};
两件事:
1) 专业化符号是模板
,而不是模板
2) 专业类型与非专业类型无关。这里没有遗产<代码>第二个字段将是唯一的字段
把这些放在一起,你需要
template<>
struct AAA<int>
{
int field;
int second_field;
};
模板
结构AAA
{
int字段;
int第二个_字段;
};
两件事:
1) 专业化符号是模板
,而不是模板
2) 专业类型与非专业类型无关。这里没有遗产<代码>第二个字段将是唯一的字段
把这些放在一起,你需要
template<>
struct AAA<int>
{
int field;
int second_field;
};
模板
结构AAA
{
int字段;
int第二个_字段;
};