FreeBASIC BaseInit
目次→言語リファレンス→変数とデータ型→ユーザ定義型→BASE (initializer)←オリジナル・サイト
派生した 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
方言差:
- メソッドは -lang
fb 方言だけでサポートされます。このため、Base は他の方言で機能しません。
QBからの違い:
参照:
ページ歴史:2023-07-09 02:33:34
日本語翻訳:WATANABE Makoto、原文著作者:DkLwikki