title: Why does my code result in "cannot instantiate abstract class"?
body: <p>This is the line where the error occurs:</p>
  
  <pre><code>this-&gt;_tbfCmdHandler.reset(new Bar()); 
  </code></pre>
  
  <blockquote>
    <p>facade_impl.cpp(202): error C2259:
    'FOO::Bar' : cannot
    instantiate abstract class<br>
    due to following members:<br>
    'void Subscriber::update(T)' : is
    abstract          with<br>
               T=char &amp;          </p>
    
    <p>observer.h(66)
    : see declaration of
    'Subscriber::update'<br>
    with<br>
    T=char &amp; 
    'void Subscriber::update(T)' : is
    abstract           with<br>
              T=const char &amp;</p>
    
    <p>observer.h(66)
    : see declaration of
    'Subscriber::update'<br>
    with<br>
    T=const char &amp;           ]</p>
  </blockquote>
  
  <p>This is the declaration for Facade::Implementation</p>
  
  <pre><code>namespace FOO
  {
  class Facade::Implementation 
                  :public Subscriber&lt;const char&amp; &gt;                     
  {
  </code></pre>
  
  <p>facade.cpp</p>
  
  <pre><code>FOO::Facade::Facade () : impl (new Implementation)
  {
  
      Singleton&lt;SPM::Facade&gt;::instance ();
  }
  
  
  The update functions:
      void update( const char *aMsg)   
      {
          printf("foo");
      }; 
  </code></pre>
  
  <p>I hope this helps to figure out where I can find the error.</p>