您好,登錄后才能下訂單哦!
最近在學習課程的時候發現一個很困惑的問題,上代碼
class DataHeader;
class LoginResult:public DataHeader;
typedef std::shared_ptr<DataHeader> DataHeaerPtr;
//原型
void addSendTask(ClientSocketPtr& pClient, DataHeaderPtr& header)
//未報錯調用
DataHeaderPtr ret = std::make_shared<LoginResult>();
pCellServer->addSendTask(pClient, ret);
//報錯調用
auto ret = std::make_shared<LoginResult>();
pCellServer->addSendTask(pClient, (DataHeaderPtr)ret);
#錯誤代碼:(DataHeaderPtr)ret
錯誤類型:
非常量引用的初始值必須為左值。
測試環境為vc2017。
疑問:
學習的電子課件中為vc2013,這里并不會報錯。在vc2017導入課件中的源碼這里也不會報錯。這是什么原因????????????
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。