我有一个命名为MessageQueue的类,带有2个方法(一个模板和一个普通),它们的签名不同,但名称相同。所有方法都是静态

在我的类MessageQueue(MessageQueue.h)中:

template <class T> void MessageQueue::sendMessage(const ___handle queue,
                                              const MESSAGE_ACTION &action,
                                              const T *pMessage)
{
    sendMessage(queue, action, (void*)pMessage, sizeof(pMessage));
}

在MessageQueue.cpp中:
void MessageQueue::sendMessage(const ___handle queue, const MESSAGE_ACTION &action,
                           const void *pMessage, const ___uint16 &size)
{
  // ...
}

我在这行上有一个编译错误:
sendMessage(queue, action, (void*)pMessage, sizeof(pMessage));

错误是:

最佳答案

sendMessage的调用似乎是静态访问,但是该方法不是静态的。应该将方法声明为静态,或者需要``MessageQueue的实例;有关静态成员函数的说明,请参见here

10-04 10:36