【发布时间】:2020-07-20 21:22:51
【问题描述】:
我有一组点,它们都是线段的一部分。所以我想为 point 创建一个结构,这样它就有一个变量指向它所在的 line。
template<typename T>
struct point{
int x,y;
T* ln;
};
struct line{
point U,L;
};
point a;
a.x = 1;
a.y = 1;
point b;
b.x = 0;
b.y = 0;
line seg1;
seg1.U = a;
seg1.L = b;
a.ln = seg1;
b.ln = seg1;
在代码中,我收到以下错误:
'invalid use of template-name 'point' without an argument list'
我认为我们不应该这样处理这个问题。我确实看到了一些问题,例如在 line 结构中创建 point 时,T 是未知的(我尝试添加一个构造函数,但是似乎也不起作用)。 有没有更好的方法来解决这个问题?
【问题讨论】:
-
"这似乎不起作用" 有什么问题?请具体并复制粘贴编译器错误(如果有)。
-
它不起作用,因为 "point U,L;"不是实例化具有一个模板参数的模板的有效方法。
-
是您尝试解决
line无法从point看到的问题的模板吗? -
是的,我试图用模板解决它