title: C++ constructor definition
body: <p>All of the constructors methods here do the same thing. I mostly use method2 but saw method3 for the first time today. Have seen method1 in some places but dont know what are the exact differences between them ?
  Which one is the best way to define constructors and why ? Is there any performance issues involved ?</p>
  
  <pre><code>  1 class Test
    2 {
    3     private:
    4         int a;
    5         char *b;
    6     public:
    7         Test(){};
    8         
    9         // method 1
   10         Test(int &amp;vara, char *&amp; varb) : a(vara), b(varb){}
   11         
   12         // method 2
   13         Test(int &amp;vara, char *&amp; varb)
   14         {
   15             a = vara;
   16             b = varb;
   17         }   
   18         
   19         //method 3
   20         Test(int &amp;vara, char *&amp; varb)
   21         {
   22             this-&gt;a = vara;
   23             this-&gt;b = varb;
   24         }   
   25         
   26         ~Test(){}
   27 }; 
  </code></pre>
  
  <p>I have here used simple fields int and char*,what will happen if I have many fields or complex types like struct ??</p>
  
  <p>Thanks</p>