error C2955: 使用类 模板 需要 模板 参数列表c++模板问题。。求高手指点

2024-11-22 21:53:07
推荐回答(2个)
回答(1):

你的max函数不是静态函数,不能这么调用。建议你将max声明一个友元函数。
template
class Point
{
public:
Point(T x = 0, T y = 0); // 默认构造函数,默认值为左上角坐标(0, 0)
void setX(T x);
T getX();
void setY(T y);
T getY();
void print();
// void moveRight(T offset);
// void moveDown(T offset);
friend T& max(Point &, Point &); // 更改
private:
T x;
T y;
};

template
T &max(Point &a, Point &b)
{
if(b.x < a.x)
{
a.print();
return a;
}
else
{
b.print();
return b;
}
}

回答(2):

类模板中类的成员函数的声明和定义要在同一个文件中
将他们放到同一个头文件中试试