大家好。模板结构有两种:
Point2<T>
Vector2<T>
两者都有相似的字段 T x, T y
由于它们将包含不同的函数,我不想将 Vector2 表示为 Point2 (通过 typedef)。
在我尝试编写一个转换函数之后,出现了如何将一个函数转换为另一个函数(反之亦然)的问题。
我的尝试(代码如下),其中没有提前生命权。
template <typename T>
Point2<T> Vector2<T>::ToPoint2() {
return Point2<T>(x, y);
}
该代码按其应有的方式运行和工作。但我需要在另一个结构体中描述相同的,但是在这种情况下,描述这些结构体的头会互相包含,这会导致错误,即会vector2.h
包含point2.h
,但point2.h
会包含vector2.h
我想准确地编写函数,而不是使用像operator Vector2() const; 这样的运算符。
请帮帮我。