Deriving a pointer type to the non-pointer class member
<p>In book named "Using C++" by Rob McGregor there is following example of using pointer-to-member operator</p>

<pre><code>class mycls
{
public:
    int member;
    int *ptr;
};

void main()
{
    mycls MyClass;

    // Derive a pointer type to the non-pointer class member
    int mycls::*member = &amp;mycls::member;

    MyClass.ptr = new int;
    mycls* pMyClass = &amp;MyClass;

    pMyClass-&gt;*member = 5;
    *MyClass.ptr = 10;

    cout &lt;&lt; "pMyClass-&gt;*member = " &lt;&lt; pMyClass-&gt;*member &lt;&lt; "\n"; // pMyClass-&gt;*member = 5
    cout &lt;&lt; "MyClass.*member = " &lt;&lt; MyClass.*member &lt;&lt; "\n"; // MyClass.*member = 5
    cout &lt;&lt; "*MyClass.ptr = " &lt;&lt; *MyClass.ptr &lt;&lt; "\n"; // *MyClass.ptr = 10
    cout &lt;&lt; "*pMyClass-&gt;ptr = " &lt;&lt; *pMyClass-&gt;ptr &lt;&lt; "\n"; // *pMyClass-&gt;ptr = 10

    delete MyClass.ptr;
}
</code></pre>

<p>In this example I don't understand why member variable <code>mycls::member</code> becomes maybe a pointer after (guessing) this line of code:</p>

<pre><code>int mycls::*member = &amp;mycls::member; 
</code></pre>

<p>What this does?</p>
