模板的超类 Foo类

问题描述 投票:0回答:1

假设我有一个模板类

template <int v>
class Foo {...}

我有一个功能

void f(...)

接受Foo <1>,Foo <2>等的任何对象作为输入,如何定义函数?似乎

void f(Foo x) 

不编译。 Foo <1>,Foo <100>,...和所有Foo的常见类型是什么?

c++ templates inheritance superclass
1个回答
1
投票

Foo <1>,Foo <100>,...和所有Foo的常见类型是什么?

没有通用类型。不过,您也可以将f也设为模板

template <int v>
void f(Foo<v> x)
{
    //code here
} 

像上面一样,现在该函数将接受并给您Foo


1
投票

您也只需要使f成为模板:

template <int v>
void foo(Foo<v> x)
{
    // code
}
© www.soinside.com 2019 - 2024. All rights reserved.