素敵な方法でそれを行うことができますか?
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 にすることができますが、実際には列挙型です。