我有一个基类,它有 4 个不同的参数向量:HW、SW、FW、高级
每个类都派生自基类,并且需要能够从一个参数向量转换为另一个。
例如:转换(向量 vec1,向量 vec2);
一种实现方式是使用 16 个静态转换案例。然而,虽然目前有 4 种不同类型的向量,但以后可能会添加更多。
并非所有类都实现了所有 16 种转换。他们中的很多人将使用默认转换(我想在返回“无转换定义错误”的基类中实现);
class A: public baseClass
Class B: public baseClass
Class C: public baseClass
C::Convert(Vector<HW> vec1, Vector<SW> vec2)
{
vec2[0] = vec1[0] +vec1[1] *1.5;
}
B::Convert(Vector<HW> vec1, Vector<SW> vec2)
{
vec2[0] = vec1[0] +vec1[1] *3.7;
}
A::Convert(Vector<SW> vec1, Vector<HW> vec2)
{
vec2[0] = vec1[2] +vec1[1] *9;
}
定义通用转换的好方法是什么?我想也许是一个向量模板。
Template<Vector<K>, Vector<T>>
void Convert(const k& vec1, T vec2)
我不能假设存在从每个向量到另一个向量的转换。