c++ - 如何为模板函数指定可能的数据类型

标签 c++ templates

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

我怎样才能使用这些后代类函数?或者只接受 drawable 的后代?

这是我的函数的开始。 GetPositionY 是 drawable 的函数。

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/

相关文章:

c++ - 如何强制 tesseract 不使用 TESSDATA_PREFIX

c++ - 遍历数组指针?

c++ - P0847 推断这一点 - 它可以允许通用克隆而不需要 CRTP 吗?

javascript - Play Framework JavaScript 函数作为 scala 模板参数

c++ - 改变击键速度 C++

c++ - 使用模板的 C++ 部分编译如何工作?

C++:初始化在头文件中声明的模板构造函数/例程?

带有模板的c++类找不到它的构造函数

C++模板类型循环和指向模板实例的非模板指针

asp.net-mvc - 如何覆盖 @Html.LabelFor 模板?