为什么我们可能想在类方法之前放置类名?

时间:2013-03-13 12:33:12

标签: c++ templates syntax

我有一个具有以下结构的代码:

aaa::bbb<ccc>
ccc::func_name(type1 arg1, type2 arg2)
{
   something1;
   aaa::bbb<ccc> obj_name(variable);
   something2;
}

它看起来与函数模板类似,但在函数模板中,我们应该在方法之前放置template <class class_name>

2 个答案:

答案 0 :(得分:4)

aaa::bbb<ccc>ccc::func_name()的返回值的类型。

答案 1 :(得分:4)

你的意思是这样的:

std::vector<Point>
Point::func_name(type1 arg1, type2 arg2)
{
   something1;
   std::vector<Point> obj_name(variable);
   something2;
}

它是一个方法的正常声明,它返回另一个碰巧是模板类实例的对象。有人显然认为它比

更具可读性
std::vector<Point> Point::func_name(type1 arg1, type2 arg2) {...}

意味着完全一样的