title: C++ include header not working
body: <p>I am learning some basic concepts of C++ and I am stuck in using multiple files using headers. 
  I have 3 files. </p>
  
  <p>Calculator.h</p>
  
  <pre><code>#ifndef CALCULATOR_H_CAL
  #define CALCULATOR_H_CAL
  class Calculator{
          int a,b;
          public:
          Calculator();
          Calculator(int,int);
      int op();
  };
  #endif
  </code></pre>
  
  <p>Calculator.cpp</p>
  
  <pre><code>#include&lt;iostream&gt;
  #include "Calculator.h"
  
      Calculator::Calculator(){
          a=0;b=0;
      }
      Calculator::Calculator(int c,int d){
          a=c;b=d;    
      }
      int Calculator::op(){
          return a*b;
      }
  </code></pre>
  
  <p>Main.cpp</p>
  
  <pre><code>#include&lt;iostream&gt;
  #include "Calculator.h"    
  
  int main(){
      Calculator a(2,3);
      int b=a.op();
      std::cout &lt;&lt; b;
  }
  </code></pre>
  
  <p>But compiling with g++ Main.cpp gives errors:</p>
  
  <pre><code>/tmp/cc09isjx.o: In function `main':
  Main.cpp:(.text+0x83): undefined reference to `Calculator::Calculator(int, int)'
  Main.cpp:(.text+0x8c): undefined reference to `Calculator::op()'
  collect2: ld returned 1 exit status
  </code></pre>
  
  <p>What is wrong here?</p>