【发布时间】:2011-03-24 18:07:01
【问题描述】:
我有一个用于 3D 矢量数学的模板 Vector 类。我想拥有此类不同类型和大小的变体(例如 Vec2i、Vec2f、Vec3i、Vec3f),并且能够从另一个构造一个,如下所示:
Vec2i v(1, 2);
Vec3f u = Vec3f(v, 0);
目前,我在 Vector 中有许多构造函数来完成此任务。但是,允许以与上述相同的方式构造 Vec4 似乎是不正确的:
Vec4f t = Vec3f(v, 0)
我希望为 Vec2*、Vec3*、Vec4* 变体提供单独的类,但这意味着代码重复。我该怎么做?从基本 Vector 类继承?根据原始 Vector 类实现每个变体(即 Vector 类是每个变体的私有成员)?
【问题讨论】: