On 2011-05-16 12:32, useo wrote: > Hey guys, > > is there any chance to create an abstract constructor like: > > abstract class ABC { > > abstract this(); > > } > > DMD always says "...this non-virtual functions cannot be abstract" - > when I use an interface like: > > interface ABC { > > this(); > > } > > I get a similar error: "...constructors, destructors, postblits, > invariants, unittests, new and delete functions are not allowed in > interface ABC" > > Is there any solution or is it possible to create such inheritances > in DMD?
An abstract constructor makes no sense. It also makes no sense for an interface to have a constructor. A constructor is specific to the class that it's on. It is not virtual at all and has nothing to do with the inheritance hierarchy beyond the fact that subclasses can and will call the constructors of base classes in their own constructors. - Jonathan M Davis