5 Default constructors

A class or struct is assumed to have a default constructor if and only if:

  • It is not marked as abstract using the <<abstract>> directive AND
  • NOT (it is a $adt that doesn't implement IPersistable) AND
  • (it is strict AND NOT <<-dc>> used) OR (it is not strict AND <<dc>> used).

$model must have default constructor

A $model must have a reflected default constructor. The following produces the compiler error "Qualifier <<-dc>> invalid for a $model".


// generates error
$model+ X <<-dc>> {};

IPersistable must have default constructor

IPersistable classes must have a reflected default constructor. The following produces the compiler error "IPersistable classes must have a default constructor".


// generates error
$class+ X <<-dc>> isa ceda::IPersistable {};