我在接口中聲明下面的模板方法:類方法模板參數列表
class IObjectFactory
{
public:
virtual ~IObjectFactory() { }
virtual int32_t Init() = 0;
virtual bool Destroy() = 0;
virtual bool Start() = 0;
virtual bool Stop() = 0;
virtual bool isRunning() = 0;
virtual void Tick() = 0;
template <class T>
Object<T> CreateObject(T);
};
我不知道該呼叫的樣子雖然。我認爲以下就足夠了,其中mObjFactory
是前面提到的虛擬類的實現;
inline void AllocateWithMemPoolAux() { mObjFactory->CreateObject<TestClass1>(); }
我得到的錯誤是「函數模板沒有實例相匹配的參數列表」 什麼正確的函數調用是什麼樣子?
(也 - 作爲一個旁註,是沒關係的接口中聲明的模板方法,並要求用戶實現它,你可以不聲明它虛擬?)
感謝