FreeBASIC マニュアルのトップに戻る

FreeBASIC BaseInit

目次→言語リファレンス→変数とデータ型→ユーザ定義型BASE (initializer)←オリジナル・サイト

BASE (初期化子) 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい


派生した UDT 構築子の中で、基礎 UDT のための初期化子を指定します。

構文:
base ( constructor-parameters... )
or:
base ( UDT-initializers... )

記述:
Base 初期化子は、派生 UDT の構築子の先頭で使用できます。
明示的な構築子呼び出し、または UDT 初期化子を指定するために、ベースオブジェクトを初期化するのに使われます。
これは暗黙のデフォルト初期化を置き換え、それが使用される構築子内の他のステートメント上に現れなければなりません。


注意: " Base( )" と異なり、"Base (member access).Constructor( )" 命令文は、派生 UDT の構築子によって行われる暗黙のデフォルト初期化を置き換えません。通常は文法上、使うことはできません。これは、基本オブジェクトに対して2つの構築子呼び出しが行われるためです。(組み込みオブジェクト型を継承する継承構造体の場合、この2番目の構築子呼び出しによって、vtable ポインタが破損して、型 vtable ではなくベース型 vtable を指すこともあります。)

例:
Type SimpleParent
    As Integer a, b, c
End Type

Type Child extends SimpleParent
    Declare Constructor( )
End Type

Constructor Child( )
    '' Simple UDT initializer
    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 constructor call
    Base( 1 )
End Constructor

Constructor Child( ByRef rhs As Child )
    '' Base UDT constructor call
    Base( rhs.i )
End Constructor

方言差:

QBからの違い:

参照:

ユーザ定義型 に戻る

←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2023-07-09 02:33:34
日本語翻訳:WATANABE Makoto、原文著作者:DkLwikki

ホームページのトップに戻る

表示-非営利-継承