title: How do I make a class that cannot be instantiated?
body: <p>I do not want that it's possible to make an object of this class, but in my particular case, I don't know how to prevent this.</p>
  
  <p>My idea to make this possible was:</p>
  
  <pre><code>class abstract
  {
    private:
      int foo;
  
    public:
      abstract();
      virtual void useless_method_to_force_class_to_be_abstract() = 0;
      virtual ~abstract();
  };
  </code></pre>
  
  <p>But this is really not best practice I suppose...</p>
  
  <p>Are there any tips to build a concept so that the case "I don't know what method I should set to pure virtual" never happens?</p>