2014-02-21 3 views
1

У меня есть класс под названием ErrorItem, который имеет несколько конструкторов. Можно ли вызвать другой конструктор внутри конструктора для управления значениями по умолчанию?Несколько конструкторов

Пример:

CONSTRUCTOR PUBLIC ErrorItem(): 
     ErrorItem("", "", "", -1, "", ""). 
    END CONSTRUCTOR. 

    CONSTRUCTOR PUBLIC ErrorItem(
     ItemNo AS CHARACTER 
     ,UpcCode AS CHARACTER 
     ,CustomerPo AS CHARACTER 
     ,ColumnId AS INTEGER 
     ,Description AS CHARACTER): 
     ErrorItem(ItemNo, UpcCode, CustomerPo, ColumnId, Description, ""). 
    END CONSTRUCTOR. 

    CONSTRUCTOR PUBLIC ErrorItem(
     ItemNo AS CHARACTER 
     ,UpcCode AS CHARACTER 
     ,CustomerPo AS CHARACTER 
     ,ColumnId AS INTEGER 
     ,Description AS CHARACTER 
     ,Detail AS CHARACTER 
    ):   
     ASSIGN 
      THIS-OBJECT:ItemNo = ItemNo 
      THIS-OBJECT:UpcCode = UpcCode 
      THIS-OBJECT:CustomerPo = CustomerPo 
      THIS-OBJECT:ColumnId = ColumnId 
      THIS-OBJECT:Description = Description 
      THIS-OBJECT:Detail = Detail 
     . 
    END CONSTRUCTOR. 

Спасибо! Sebastien

+0

С помощью этого кода я получаю ошибку компилятора: конструкторы не могут быть вызваны напрямую –

ответ

4

Да - формат:

CONSTRUCTOR PUBLIC ErrorItem(variable list): 
THIS-OBJECT(local variable list). 

/* Stuff */ 
END CONSTRUCTOR. 

Также «ЭТА-ОБЪЕКТ» вызов должен быть первым оператором в конструкторе.

+1

Отлично! Спасибо! –

Смежные вопросы