我有IKernelTask及其派生类(为输入,声音......制作单独的内核任务)另外我有CKernel运行不同的内核任务。 CKernel有一个函数Execute(),它运行一个内核任务列表并运行它们的Update()函数。
我在内核任务之间发送数据时遇到了困难,因此我决定尝试通过将内核对象的引用发送到Execute()然后以相同的方式向内核任务发送数据。更新()。
CKernel的Execute()就像这样:
Execute(CKernel &oKernel)
For each kernel task:
{
Update(oKernel);
}
IKernelTask的Update()就像这样:
Update(CKernel &oKernel)
{
// Each kernel task has an overridden Update() function
}
在主要方面:
while (running)
{
oKernel.Execute(oKernel);
}
这将允许内核任务在内核任务之间转发数据,方法是让他们通过Update()函数访问内核。
然而
这是一个很好的解决方案吗?如果没有,那么分享数据的传统方式是什么?
2.如果这是一个好的解决方案;问题是CKernel需要包含IKernelTask,而IKernelTask需要包含CKernel。我已经尝试了前向声明,但是我得到的错误如:C2027:使用未定义类型'CKernel'
答案 0 :(得分:0)
您需要#include
带有CKernel
定义的头文件。