title: accessing the caller data type in a member function
body: <p>I want to do something like this code:</p>
  
  <pre><code>myType a;
  a-&gt;foo();
  
  void foo()
  {
     cout &lt;&lt; a-&gt;bar(); 
  }
  void bar()
  {
     cout &lt;&lt; a-&gt;bar2();
  }
  void bar2()
  {
     cout &lt;&lt; a-&gt;bar3();
  }
  </code></pre>
  
  <p>In another word, when a member function is called, can we use the original caller?</p>