2016-03-29 13 views
1

私はこのコードを持っています。C++ auto、演算子の割り当て方法は分かりませんか?

CGraphicTextInstance*& prGuildNameInstance = pTextTail->pGuildNameTextInstance; 

と私はautoのようないくつかのC++ 11個の機能変換を適用したいです。自動車の後

は次のようになります。

auto prGuildNameInstance = pTextTail->pGuildNameTextInstance; 

した後、私はintelisenseでこれを見たオペレータ*&せずに自動アサインにちょうどCGraphicTextInstanceを自動追加します。

私の質問はなぜですか?手動で不足している演算子を追加する必要がありますか?このような ?

auto &prGuildNameInstance = pTextTail->pGuildNameTextInstance; 

私の質問は私のコードに損害を与える可能性がありますか? これが問題になりますか? 彼は自分が望むものを自動的に割り当てることができますか?

+0

'auto'はあなたがやる用途に最も適切な変数型を使用することになっています。だから、これがあなたのコードの唯一の部分であれば、 'auto'は変数の何もしないので、あまり考えません。 – Aracthor

答えて

5

auto(主に)テンプレートの推論と同じルールを使用して型を推論します。このように、それは参照を取り除くことができますので、あなたは、参照を服用について明示する必要があります。

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

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

選択は、本質的に任意の変数の場合と同じである:あなたが参照したい場合は、参考のために頼みます。値が必要な場合は、値を要求します。

+0

お返事ありがとうございます。しかし、自動的に*&? – Ramy

+0

@Ramy実際には、それは言語を壊すだろう。 – TartanLlama

関連する問題