Records are constructed automatically, using a default no-argument constructor, but classes must be explicitly constructed. Because records have a default no-argument constructor, any user-defined record constructor must have one or more parameters.
1. No, it's not virtual2. Overriding a default constructor create is also not possible for classes: the default constructor is not virtual. It also does not make sense. https://www.freepascal.org/docs-html/rtl/system/tobject.create.htmlNow the fun part: in FPC (trunk) we have management operators that can do what you want: setting things to other values than just zero's and nil's.http://wiki.freepascal.org/management_operators