template <typename Type>
class Foo
{
Foo& Bar()
{
return *this;
}
};
为什么这会编译?我不应该在返回类型中指定模板参数吗?
Foo<Type>& Bar()
{
return *this;
}
答案 0 :(得分:2)
Foo<Type>
,因为Bar
的定义在类的定义范围内。如果它在类定义之外,那么你必须明确定义它:
template <typename Type>
Foo<Type>& Foo<Type>::Bar()
{
return *this;
}