cannot instantiate abstract class because members are abstract
<p>I have this abstract base class ODESolver:</p>

<pre><code>//ODESolver.h
#ifndef ODESolver_H
#define ODESolver_H
#include "doublependulum.h"
class ODESolver
{
public:
    ODESolver( DoublePendulum&amp;);           //constr
    virtual ~ODESolver();                  //destr
    virtual void predict (const double &amp;)=0; //virtual
protected:
    DoublePendulum DoublePend;
};
#endif
</code></pre>

<p>with implementation:</p>

<pre><code>//ODESolver.cpp
#include "ODESolver.h"
//constructor
ODESolver::ODESolver( DoublePendulum &amp; param)
          :DoublePend(param)
{}
//destructor
ODESolver::~ODESolver(){}
</code></pre>

<p>I also have this class ODEEuler wich inherits from ODESolver</p>

<pre><code>//ODEEuler.h
#ifndef ODEEuler_H
#define ODEEuler_H
#include "ODESolver.h"
class ODEEuler : public ODESolver
{
public:
    ODEEuler(DoublePendulum &amp;);
    virtual ~ODEEuler();     
    virtual void Predict(const double &amp;);
};
#endif
</code></pre>

<p>with implementation</p>

<pre><code>//ODEEuler.cpp
#include "ODEEuler.h"
#include &lt;iostream&gt;
using namespace::std;
ODEEuler::ODEEuler (DoublePendulum &amp;param) 
         :ODESolver(param)
{}
//destructor
ODEEuler::~ODEEuler(){}
 void ODEEuler::Predict(const double &amp;dt=0.01)
{
    DoublePend=DoublePend+DoublePend.Derivative()*dt;
    cout &lt;&lt; DoublePend.getUp().getTheta() &lt;&lt; endl; \\ I want to print getTheta on the screen form my getUp Pendulum from my Doublepend
}
</code></pre>

<p>I now want to test my ODEEuler, so I made an object in my Main file:</p>

<pre><code>//Main.cpp
#include "pendulum.h"
#include "doublependulum.h"
#include "ODEEuler.h"
#include "ODESolver.h"
#include &lt;iostream&gt;
using namespace::std;
int main()
{ 
Pendulum MyPendulum(1.5,1.5,1.5,1.5);
DoublePendulum MyDoublePendulum(MyPendulum,MyPendulum,9.81);  
ODEEuler myODEEuler(MyDoublePendulum);
return 0;
}
</code></pre>

<p>I keep getting this error: </p>

<blockquote>
  <p>1>....\main.cpp(24): error C2259: 'ODEEuler' : cannot instantiate
  abstract class 1>          due to following members: 1>          'void
  ODESolver::predict(const double &amp;)' : is abstract 1><br>
  .....\odesolver.h(11) : see declaration of 'ODESolver::predict'</p>
</blockquote>

<p>I checked if all the types that I used in my virtual void predict function are the same as elsewhere. I guess it is maybe something conceptual I do wrong. What exactly does it mean that I cannont instantiate ,because 'predict' is abstract?</p>

<p>Thanks in advance for your support!</p>
