簡體   English   中英

C ++:無法在沒有對象的情況下調用成員函數

[英]C++: cannot call member function without object

我有一個類nammed MessageQueue,有兩個方法(一個模板,一個普通),具有不同的簽名,但具有相同的名稱。 所有方法都是靜態的

在我的類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));

錯誤是:

錯誤:無法調用成員函數'void MessageQueue :: sendMessage(void *,const MESSAGE_ACTION&,const void *,const ___ uint16&)'沒有對象

sendMessage的調用似乎是靜態訪問,但該方法不是靜態的。 要么將方法聲明為靜態,要么需要“MessageQueue”的實例; 請參閱此處以獲取靜態成員函數的說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM