0

素敵な方法でそれを行うことができますか?

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 にすることができますが、実際には列挙型です。

4

1 に答える 1