title: How do we refer to a field when method argument has same name?
body: <pre><code>#include&lt;iostream&gt;
  #include&lt;fstream&gt;
  using namespace std;
  
  class Integer {
  public:
      int val;
      Integer(int val = 0) {
          this-&gt;val = val;
      }
      void setVal(int val) {
          this-&gt;val = val;
      }
  };
  
  int main()
  {
      int val;
      Integer i;
      i.setVal(8);
      cout &lt;&lt; val &lt;&lt; endl;
  }
  </code></pre>
  
  <p>When I execute my code I got <code>0</code>.I am new to C++,I do not understand <code>this</code>. Can someone elaborate more regarding this issues?</p>