我只是好奇。我傳遞指針與簽名從const&參數到&參數的轉換無效似乎是無稽之談?
void printCommandReceived(const CommandDescriptor &descriptor)
作爲第三個參數的功能與簽名
CommandLogFilter::CommandLogFilter(QSharedPointer<LogServer> logServer, QObject *parent,
void (*preprocessValidCommand)(CommandDescriptor &descriptor))
和G獲取錯誤構造器++編譯器:
error: invalid conversion from ‘void (*)(const CommandDescriptor&)’ to ‘void (*)(CommandDescriptor&)’ [-fpermissive]
在我的理解中提到非-const對象應該可用作引用const對象參數的參數。因此,指向接受非const對象引用的函數的類型指針的參數應該超過滿足(並且做隱式轉換)指向函數的類型指針參數,該參數甚至可以接受const對象引用。
我在哪裏錯了?
你有一個「指向某個東西」並且想傳遞一個「指向其他東西的指針」。在這種情況下,即使指向類型相似,也沒有隱式轉換。 –