【发布时间】:2016-05-02 17:04:48
【问题描述】:
我有一个 FreeRTOS 函数 xTaskCreate。简化的声明看起来像
typedef void (*TaskFunction_t)( void* );
unsigned xTaskCreate( TaskFunction_t pxTaskCode, void*params );
并且有两个类:
class Super {
virtual void task(void*params) = 0;
};
class Derived1 : public Super {
virtual void task(void*params){ while(1){ blinkLed(1); delay_ms(333); } }
};
class Derived2 : public Super { ... ;}
在函数init() 中,我选择派生类之一并创建它的实例。然后想创建任务
void init(){
Super *obj = condition ? new Derived1 : new Derived2;
xTaskCreate( obj->task ); // WRONG.
}
更新。在xTaskCreate 的简化声明中添加错过的void*params。
【问题讨论】:
-
那些类应该继承自 Super 吗?如果不是,什么是派生的?
标签: c++ c++11 member-functions freertos