Base (Инициализатор)
 
Определяет инициализатор базового типа в конструкторе производного Udt

Синтаксис

Base ( constructor-parameters... )
или:
Base UDT-initializer

Описание

Инициализатор Base может использоваться в верхней части конструкторов производных определяемых пользователем типов. Это позволяет явно указать вызов конструктора или использоваться для инициализации базового объекта. Он заменит значения по умолчанию неявным значением инициализатора. Данный инициализатор должен располагаться выше любых других заявлений в конструкторе.

Примечание: в отличие от "Base( )",  "Base.Constructor( )" заявление не заменяет неявную инициализацию по умолчанию, проделанную конструктором производного UDT, и обычно не может быть использовано на законных основаниях, поскольку это привело бы к двойному вызову конструктора для базового объекта.

Пример

Type SimpleParent
    As Integer a, b, c
End Type

Type Child extends SimpleParent
    Declare Constructor( )
End Type

Constructor Child( )
    '' Простой UDT инициализатор
    Base( 1, 2, 3 )
End Constructor


Type ComplexParent
    As Integer i
    Declare Constructor( ByVal As Integer = 0)
End Type

Constructor ComplexParent( ByVal i As Integer = 0 )
    this.i = i
End Constructor

Type Child extends ComplexParent
    Declare Constructor( )
    Declare Constructor( ByRef As Child )
End Type

Constructor Child( )
    '' Вызов Base UDT конструктора
    Base( 1 )
End Constructor

Constructor Child( ByRef rhs As Child )
    '' Вызов Base UDT конструктора
    Base( rhs.i )
End Constructor

Различия диалектов

  • Методы поддерживаются только в диалекте -lang fb, следовательно Base не имеет никакой функциональности в других диалектах.

Отличия от QB

  • Новое в FreeBASIC

См. также