title: Undefined reference to `vtable' in the constructor
body: <p>I try to learn C++ constructors, Imma noobie yet. I wrote the next class:<br>
  <strong>screen.h</strong>  </p>
  
  <pre><code>#ifndef SCREEN_H
  #define SCREEN_H
  
  #include "pch.h"
  
  class Screen
  {
  public:
      Screen(const std::string&amp; name);
      Screen(const Screen&amp; screen);
      Screen(Screen&amp;&amp; screen);
  
      const std::string&amp; name() const;
  
      virtual void draw();
  private:
      std::string m_name;
  };
  
  #endif // SCREEN_H
  </code></pre>
  
  <p><strong>screen.cpp</strong>  </p>
  
  <pre><code>#include "screen.h"
  
  Screen::Screen(const std::string&amp; name)
      : m_name{name}
  {
      m_name = name;
  }
  
  Screen::Screen(const Screen&amp; screen)
      : m_name{screen.m_name}
  {
  
  }
  
  Screen::Screen(Screen&amp;&amp; screen)
      : m_name{std::move(screen.m_name)}
  {
  
  }
  
  const std::string&amp; Screen::name() const
  {
      return this-&gt;m_name;
  }
  </code></pre>
  
  <p>But I get an issue in the compilation time:  </p>
  
  <blockquote>
    <p>screen.cpp:4: error: undefined reference to `vtable for Screen'</p>
  </blockquote>
  
  <p>And so for all constructors.<br>
  I can't get that is my mistake... Pls, can anyone explain me?</p>