小编Yur*_*ikh的帖子

模板类类型特定的功能

好的,所以我有这个模板类,有点像单向列表。

template <typename T> List
Run Code Online (Sandbox Code Playgroud)

它具有此内部功能打印

public:
void Print();
Run Code Online (Sandbox Code Playgroud)

如您所料,它从头到尾打印列表内容;但是,由于模板可以将类视为T,因此可以想象,在这种情况下,我将需要Print()的不同实现。例如,我有另一个班级Point

class Point{
 private:
  int x, y;
 public:
  int getX();
  int getY();
}
Run Code Online (Sandbox Code Playgroud)

所以我要专门为积分设计打印。我尝试了这个:

void List<Point>::Print();
Run Code Online (Sandbox Code Playgroud)

但是编译器告诉我

prototype for void List<Point> Print() doesn match any in class List<Point>
Run Code Online (Sandbox Code Playgroud)

虽然

candidates are: from List<T> [with T = Point] void List<Point>::Print()
Run Code Online (Sandbox Code Playgroud)

对我来说,这似乎是一样的功能。怎么了?以及如何编写T特定的模板类函数?

c++ templates class template-function template-classes

3
推荐指数
1
解决办法
4672
查看次数