英語版
このページの英語版を見る
dmd.dclass
class 宣言を定義する。
仕様 クラス
Authors:
License:
ソース dclass.d
- struct
BaseClass
; -
- bool
fillVtbl
(ClassDeclarationcd
, FuncDeclarations*vtbl
, intnewinstance
); - cd クラスのメンバ関数に基づいて、ベースクラスの vtbl[] を埋める。
入力 vtbl !=NULLの場合、それを埋める。 newinstance !=0は、すべてのエントリがcdのメンバによって埋められなければならないことを意味する。 cdの基底クラスのメンバではなく、cdのメンバによって記入されなければならない。
Returns:エントリが cd のメンバによって埋められる場合、true が返される。 のメンバによって埋められる。)
- class
ClassDeclaration
: dmd.aggregate.AggregateDeclaration; -
- bool
stack
; - これがスコープ・クラスであればtrue
- int
cppDtorVtblIndex
; - これがC++クラスの場合、これは仮想デストラクタのために予約されたスロットである。
- bool
inuse
; - 再帰的な試みを防ぐ
- Baseok
baseok
; - 基底クラスの解決の進捗を設定する
- ObjcClassDeclaration
objc
; - Objective-Cとの統合に必要なクラス宣言のデータ。 の統合に必要なクラス宣言のデータである。
- final pure nothrow @nogc bool
isBaseOf2
(ClassDeclarationcd
); - this'がcdの基底クラスかどうかを判定する。 これは循環継承を検出するためだけに使用される。
- pure nothrow @nogc bool
isBaseOf
(ClassDeclarationcd
, int*poffset
); - this' が cd の基底クラスかどうかを判定する。
- final const bool
isBaseInfoComplete
(); - this' が完全な基底クラス情報を持っているかどうかを判定する。 これは、共変オーバーロードにおける前方参照を検出するために使用される。
- final ClassDeclaration
searchBase
(Identifierident
); - 基底クラスを深さ優先で左から右の順に検索する。 ident'という名前のクラスまたはインタフェースを左から右の順に検索する。 最初に見つかったところで停止する。追加のマッチは探さない。Parameters:
Identifier ident
検索する識別子 Returns:見つかればClassDeclaration、見つからなければnull - final bool
hasMonitor
(); - Returns:monitorフィールドがあればtrueを返す。
- final FuncDeclaration
findFunc
(Identifierident
, TypeFunctiontf
); - 識別子と型が一致する仮想関数を検索する。 インターフェース実装のための仮想関数テーブルを構築するために使用される。Parameters:
Identifier ident
関数の識別子 TypeFunction tf
関数の型 Returns:見つかれば関数シンボル、見つからなければNULLエラー 複数一致した場合、エラーメッセージを表示する
- final const bool
isCOMclass
(); - final bool
isAbstract
(); - const int
vtblOffset
(); - vtbl[]のスロット0が他の何かのために予約されているかどうかを判断する。 クラス・オブジェクトの場合はそうで、ここにclassinfo ptrが入る。 COMインターフェイスの場合は、そうではない。 非COMインターフェースの場合、そうである。Returns:0 vtbl[0]は最初の仮想関数ポインタである。 1 vtbl[0]はclassinfo/interfaceinfoポインタである。
- const const(char)*
kind
(); - final void
addObjcSymbols
(ClassDeclarations*classes
, ClassDeclarations*categories
);
- class
InterfaceDeclaration
: dmd.dclass.ClassDeclaration; -
- pure nothrow @nogc bool
isBaseOf
(ClassDeclarationcd
, int*poffset
); - this'がcdの基底クラスかどうかを判断する。 (実際には、cdがサポートするインターフェースであるかどうか)
出力 *poffset クラスの開始位置へのオフセット OFFSET_RUNTIMEは実行時にオフセットを決定しなければならない。
Returns:falseはベースではない trueはベースである - const const(char)*
kind
(); - const int
vtblOffset
(); - vtbl[]のスロット0が他の何かのために予約されているかどうかを判断する。 クラス・オブジェクトの場合はそうで、ここにClassInfo ptrが入る。 COMインターフェースの場合は、「いいえ」。 非COMインターフェースの場合、そうである。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku