可能性の重複:
What is the arrow operator (->) synonym for in C++?C++ " - >"とは何ですか?
私は非常に基本的な質問があります。 Googleでそれを検索することができませんでした...私は知らない何を - >であり、それは例えば、C++で何をするか:
render = Surface->Logic->Scale;
可能性の重複:
What is the arrow operator (->) synonym for in C++?C++ " - >"とは何ですか?
私は非常に基本的な質問があります。 Googleでそれを検索することができませんでした...私は知らない何を - >であり、それは例えば、C++で何をするか:
render = Surface->Logic->Scale;
C++ ->
には、2つのコンテキストがあります。
に関してポインタ
オブジェクトに対する
(*Surface).Logic->Scale; // same applies for 'Logic' too
、と等価である、あなたは
struct B { void foo(); };
struct A {
B *p;
B* operator ->() { return p; }
};
使用法は、
A obj;
obj->foo();
なり、としてそれをオーバーロードすることで、この作業を模擬することができます上記は擬似コードであり、 'B * p;'を有効なオブジェクト( 'p = new B;'のような)に初期化する必要があるかもしれないことに注意してください。私はデモを複雑にするので、これを言及していない。 – iammilind
はあなたがC++で本を持っていますか?答えが「いいえ」の場合は、なぜですか。
答えがイエスであれば、私は、これはそれで覆われていることを確信しています。
とにかく、「 - >」記号は、ポインタデ参照演算子です。
---編集---投票をダウンするものについては
、これは質問への回答の要旨である、と何かがスプーン送りです。この文脈での長さのポインタの逆参照を説明することは冗長です。これはSOとgoogleの広告メイトで説明されており、OPがそれに続く検索を(ポインタの逆参照時に)実行すると、それが何であるかについての講義。
->
オペレータは、ポインタを間接参照し、メンバにアクセスします。それは
(*(*Surface).Logic).Scale
を書くことに似ています。
ポインタロジックもあるので、我々はLogic
部材
(*surface).Logic
にアクセスすることができる逆参照されると、そこで上記では、我々は最初
*Surface
とSurface
ポインタを欽慕ポインタを逆参照する必要があるポインタ
*(*Surface).Logic
そして、あなたは、これははるかに面倒->
演算子を使うより見ることができるように今、あなたは
(*(*Surface).Logic).Scale
Scale
メンバーにアクセスすることができます。これは、ポイナーを解読し、メンバーにアクセスします。
まあ、オペレータの矢印 - のC++では(>)のポインタを使用してstruct
のメンバーにアクセスするために使用されます。たとえば、あなたが持っていると言う:あなたは記述する必要がありますy
言う要素x
にアクセスして、他のいくつかの要素に割り当てる
struct A {
int x;
};
A* mp = new A;
:
int y = mp -> x;
さらに説明するためには、あなたがここに見えることがあります。
矢印演算子です。 [この質問の可能なDublicate:](http://stackoverflow.com/questions/221346/what-is-the-arrow-operator-synonym-for-in-c) –
なぜ-1?私は何か言及するのを忘れましたか? – Aistis
@Comptrol:コメントに '[description](link)'を使う必要があります。 –