title: Force subclasses to implement a certain constructor prototype in C++
body: <p>Suppose I have an abstract class <code>A</code>. Is it possible for A to force any classes inheriting from it to implement a certain constructor prototype?</p>
  
  <p>e.g.:</p>
  
  <pre><code>class A {
  public:
      // purely virtual function
      virtual void func() = 0;
      // what i would like to be able to do
      virtual A(Obj) = 0;
  };
  </code></pre>
  
  <p>While the purely virtual function <code>func</code> above is legal, the constructor <code>A(Obj)</code> cannot be virtual. I would like if instances of a class <code>B</code> inheriting from <code>A</code> will remain abstract (or some uninstantiable or erroneous equivalent) until <code>B</code> overrides the constructor <code>A(Obj)</code>.</p>
  
  <p>In other words, I want to force any subclass of <code>A</code> to implement a constructor that takes an <code>Obj</code> as an argument. Is this possible?</p>