返回类型中不需要模板参数

时间:2011-06-30 04:16:12

标签: c++ templates syntax return-type

template <typename Type>
class Foo
{
    Foo& Bar()
    {
        return *this;
    }
};

为什么这会编译?我不应该在返回类型中指定模板参数吗?

Foo<Type>& Bar()
{
     return *this;
}

1 个答案:

答案 0 :(得分:2)

隐含了

Foo<Type>,因为Bar的定义在类的定义范围内。如果它在类定义之外,那么你必须明确定义它:

template <typename Type>
Foo<Type>& Foo<Type>::Bar()
{
    return *this;
}