簡體   English   中英

C ++ auto,不了解如何分配運算符?

[英]C++ auto , don't understand how assign operators?

我有這個代碼。

CGraphicTextInstance*& prGuildNameInstance = pTextTail->pGuildNameTextInstance;

我想應用一些c ++ 11功能,例如auto轉換。

自動后應如下所示:

auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;

添加自動后,僅自動分配CGraphicTextInstance而不使用運算符*&我看到了intelisense。

我的問題是為什么? 我應該手動添加缺少的運算符嗎? 像這樣 ?

auto &prGuildNameInstance = pTextTail->pGuildNameTextInstance;

我的問題會破壞我的密碼嗎? 這會是一個問題嗎? 可以自動分配他想要的內容嗎?

auto (通常)使用與模板推導相同的規則來推導類型。 這樣,它將刪除引用,因此您需要明確獲取引用:

auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*

auto& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*&

選擇基本上與任何變量相同:如果要引用,請提供參考;如果需要引用,請提供參考。 如果您想要一個值,則要求一個值。

暫無
暫無

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

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