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);
甲乙沒有共同的祖先。
void Collider::InitAsA(A &a);
void Collider::InitAsB(B &b);
編輯:
撞機:: InitAs ..不能變成模板,並不能在所有的改變,原因我不能改變別人的代碼。
類型可以是int,實際上它是一個枚舉。
什麼是'Type'?你能舉一個'Type1'和'Type2'的例子嗎? – Motti
你有什麼問題? –
你爲什麼要這麼做?難道你不能只是讓'Collider :: Init'成爲模板嗎? – juanchopanza