what is ::* in C++
<p>I was reading a basic C++ tutorial when I faced </p>

<pre><code>::*
</code></pre>

<p>in the following code. May I know what that is:</p>

<pre><code>class A {
public:
protected:
  int i;
};


class B : public A {
  friend void f(A*, B*);
  void g(A*);
};

void f(A* pa, B* pb) {
//  pa-&gt;i = 1;
  pb-&gt;i = 2;

//  int A::* point_i = &amp;A::i;
  int A::* point_i2 = &amp;B::i;
}

void B::g(A* pa) {
//  pa-&gt;i = 1;
  i = 2;

//  int A::* point_i = &amp;A::i;
  int A::* point_i2 = &amp;B::i;
}

void h(A* pa, B* pb) {
//  pa-&gt;i = 1;
//  pb-&gt;i = 2;
}

int main() { }
</code></pre>

<p>based on my C++ knowledge so far, I can not comprehend something like </p>

<pre><code>int A::* point_i2
</code></pre>

<p>could you help me out?</p>

<p>thank you.</p>
