我有Messageable::receiveMessage(Message&)
。当我使用它时,我希望能够传递它 a Message
,我将它传递给Message
从函数返回的 a ,但是当我这样做时,我得到
error: no matching function for call to 'Messageable::receiveMessage(Message)'
no known conversion for argument 1 from 'Message' to 'Message&'
它仅在我使用重载 << 时才有效(因为它返回 Message&,即receiveMessage(myMsg<<value);
:)
我可能/我可能做错了什么,或者只是在标准中不允许从函数返回值?我认为当你声明一个引用参数时,你可以使用对象本身并且它会自动转换(唯一的区别,它没有被复制),我看不出它是否来自函数的区别。
(我知道这个问题之前可能已经回答过了,但我的搜索只出现了链接器错误“未定义的引用”)
错误代码是receiveMessage( action->second->message() );