它可以以一种好的方式完成吗?
template <class T> Init(T &object, Type type)
{
Collider collider;
switch (type)
{
case TypeA:
collider.InitAsA(object);
break;
case TypeB:
collider.InitAsB(object);
}
}
打电话给
A a;
Init(a, TypeA);
B b;
Init(b, TypeB);
A 和 B 没有共同的祖先。
void Collider::InitAsA(A &a);
void Collider::InitAsB(B &b);
编辑:
Collider::InitAs.. 不能改成模板,也不能改,因为我不能改其他代码。
类型可以是int,实际上是一个枚举。