abstract class

http://en.wikipedia.org/wiki/Prototype_pattern#C.2B.2B

In the prototype pattern described on wiki page in the link above, the class Record has a pure virtual function so that it acts as an abstract class for the classes derived from it. The Record class also has a default constructor declared in it. What's the purpose of that constructor, if the objects of the abstract classes are never to be created?
It can be called by derived classes constructors:
1
2
3
CarRecord(const string& _oStrCarName, uint32_t _ui32ID)
      : Record(), m_oStrCarName(_oStrCarName),
        m_ui32ID(_ui32ID)
The default constructor is called when you construct an object of a derived type.

However in this case, since the default constructor does nothing, you could simply omit the default constructor, since the compiler gives you that one, just as it is, automatically.
A contradiction:

1) Objects of abstract class cannot be created.
2) A derived object always creates a base class constructor first and then itself.

Which one is correct?
Is not a contradiction, an object of a derived class is created by calling the base constructor, in this process no base objects are constructed
Thanks!
Topic archived. No new replies allowed.