繁体   English   中英

在不指定模板的情况下调用从模板派生的类的静态方法

[英]Call a static method of a class derived from template without specifying template

我将尝试用一个简单的例子来解释我的问题:

class UselessClass {};

template<class RUNNABLE>
class Task : public RUNNABLE
{
public:
    static void StartScheduler()
    {
        //Start system scheduler
    }
};

主程序

Task<UselessClass>::StartScheduler(); //Correct

//Task::StartScheduler();   //Wrong

我想要做的是编写以下代码: Task::StartScheduler();

你不能。 模板不是一个类,你不能在不提供模板参数的情况下调用它,这样编译器就会知道调用方法的确切类型。

当您尝试使用Task::StartScheduler(); ,编译器无法知道RUNNABLE模板参数的类型是什么。

你可以这样做:

using UselessTask = Task<UselessClass>;
UselessTask::StartScheduler();

虽然这不是你想要的,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM