C++ 返回类型中不需要模板参数 模板 福班 { Foo&Bar() { 归还*这个; } };

C++ 返回类型中不需要模板参数 模板 福班 { Foo&Bar() { 归还*这个; } };,c++,templates,syntax,return-type,C++,Templates,Syntax,Return Type,为什么要编译?我不应该在返回类型中指定模板参数吗 template <typename Type> class Foo { Foo& Bar() { return *this; } }; Foo&Bar() { 归还*这个; } Foo是隐含的,因为条的定义在类的定义范围内。如果它在类定义之外,则必须显式定义它: Foo<Type>& Bar() { return *this; } 模板 Foo&Foo

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

template <typename Type>
class Foo
{
    Foo& Bar()
    {
        return *this;
    }
};
Foo&Bar()
{
归还*这个;
}
Foo
是隐含的,因为
条的定义在类的定义范围内。如果它在类定义之外,则必须显式定义它:

Foo<Type>& Bar()
{
     return *this;
}
模板
Foo&Foo::Bar()
{
归还*这个;
}
template <typename Type>
Foo<Type>& Foo<Type>::Bar()
{
    return *this;
}