title: What is ::* in C++?
body: <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, what is something like the following?</p>
  <pre><code>int A::* point_i2
  </code></pre>