Определяемые пользователями конструкторы исключают проблемы с конструктором значений атрибутов (attribute-value constructor), так как они не должны явно устанавливать значение для каждого атрибута типа. Определяемый пользователем конструктор может иметь любое число параметров любого типа, которые не должны в обязательном порядке непосредственно отображаться в атрибуты типов. В определении конструктора можно устанавливать любые подходящие значения атрибутов. Атрибутам, для которых значения не заданы, будет установлено значение NULL.