首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板专门化并不能满足我的需要。

模板专门化并不能满足我的需要。
EN

Stack Overflow用户
提问于 2015-02-09 10:23:00
回答 2查看 52关注 0票数 0

我是C++模板中的新手。

我有一个模板结构AAA,它有一个名为field的字段。当有人用像AAA<int>这样的int调用它时,我希望有更多的字段名为second_field。有人能告诉我如何修复这段代码吗?

代码语言:javascript
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-09 10:28:33

有两件事:

1)专门化符号是template<>,而不是template<typename T=int>

2)专科类型为,而非,与非专一型无关。这里没有遗产。second_field将是唯一的字段。

把这些放在一起,你需要

代码语言:javascript
复制
template<>
struct AAA<int>
{
    int field;
    int second_field;
};
票数 4
EN

Stack Overflow用户

发布于 2015-02-09 10:27:19

对于所谓的模板专门化,语法与代码中的语法略有不同:

代码语言:javascript
复制
template<>
struct AAA<int>
{
    int second_field;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28407503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档