title: Error: pure virtual method called - terminate called without an active exception - Aborted
body: <p>In my A.h file:</p>
  
  <pre><code>class A{
    private:
      unsigned short PC;
    public:
      A():PC(0){}
      virtual ~A(){}
      virtual void execute(unsigned short PC)=0;
  };
  </code></pre>
  
  <p>In my B.h file:</p>
  
  <pre><code>class B:public A{
    private: 
        int status;bool exe;
    public:
      B:status(0),exe(false){}
      virtual B(){}
      void execute (unsigned short PC);
  };
  </code></pre>
  
  <p>In my B.cpp file:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include "B.h"
  
  void B::execute (unsigned short PC){
    cout &lt;&lt; "Run";
  }
  </code></pre>
  
  <p>In my Functions.h file :</p>
  
  <pre><code>#include "A.h"
  
  class Functions{
    public: 
      int status;
      Functions():status(1){} // this is a constructer
      void run(A *a);
  };
  </code></pre>
  
  <p>IN my Functions.cpp file:</p>
  
  <pre><code>#include "Functions.h"
  #include "A.h"
  #include "B.h"
  
  using namespace std;
  void Functions::run (A *a){
    a-&gt;execute();
  }
  </code></pre>
  
  <p>In my Main.cpp file:</p>
  
  <pre><code>#include "A.h" 
  #include "B.h" 
  
  int main(int args, char**argv){
    A *a;
    B b;
    a = &amp;b;
    Functions f;
    f.run(a);
    return 1;
  }
  </code></pre>
  
  <p>When I run , it has some error:
  <strong>pure virtual method called -  terminate called without an active exception -  Aborted</strong>
  Can anybody where did I misunderstand?
  Thank you</p>