title: How to understand the C++ implicit parameter "this"
body: <p>if we create a class like this :</p>
  
  <pre><code>class Sales_data
  {
    std::string isbn() const {return bookNo;}
    std::string bookNo;
  };
  </code></pre>
  
  <p>And we make a object total;</p>
  
  <pre><code>Sales_data total;
  total.isbn();
  </code></pre>
  
  <p>The <em>C++ Primer,</em> fifth edition, says (page 258),"when we call a member function, <code>this</code> is initialized with the address of the object on which the function was invoked "
  ，it like this:</p>
  
  <pre><code>Sales_data::isbn(&amp;total)
  </code></pre>
  
  <p>and the book also write,we can get the bookNo like :</p>
  
  <pre><code>std::string isbn()const {return this-&gt;bookNo;}
  </code></pre>
  
  <p>I think the implicit parameter "this" just like a pointer,
  but i can't see it type，would anybody help me point what wrong i think and what should i do to understand the implicit parameter 'this' and this parameter  works for?</p>
  
  <p>@Jason C
  my extra question:
  this is a pointer,so it behave like a normal pointer,</p>
  
  <pre><code>#include "iostream"
  using namespace std;
  int _tmain(int argc, _TCHAR* argv[])
  {
    int a = 1;
    int * b = &amp;a;
    cout &lt;&lt; "the b is " &lt;&lt; b &lt;&lt; endl;
    cout &lt;&lt; "the &amp;a is " &lt;&lt; &amp;a &lt;&lt; endl;
    cout &lt;&lt; "the *b is " &lt;&lt; *b &lt;&lt; endl;
    cout &lt;&lt; "the &amp;b is" &lt;&lt; &amp;b &lt;&lt; endl;
    return 0;
  }
  </code></pre>
  
  <p>on my computer the output is :</p>
  
  <pre><code>the b is 0110FCEC
  the &amp;a is 0110FCEC
  the *b is 1
  the &amp;b is0110FCE0
  </code></pre>
  
  <p>then ,What's the use of the type of the pointer.</p>