我正在尝试制作一个具有两种数据类型的函数,每种类型我都知道它将是drawable类的后代,这意味着我的函数依赖于drawable的某些函数。但是,因为它是模板函数,所以我不能这样做。

如何做到这一点,以便可以使用这些后代类函数?还是让它只接受drawable的后代?

这是我的职能开始。 GetPositionY是可绘制的函数。

template<typename T, typename T2>
bool CheckCollision(T* obj1, T2* obj2){
    obj1->GetPositionY;

最佳答案

CheckCollision()函数应要求客户端传递提供GetPosition()方法的对象。这就是在模板中调用obj1->GetPositionX()时要做的。没有理由强制它传递drawable对象。

关于c++ - 如何为模板功能指定可能的数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6392178/

10-13 09:08