英語版
このページの英語版を見る
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-2025 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
サイト全体のドキュメントのdmdのバージョン: 2.109.1
最新のdmdのバージョン: 2.111.0 ダウンロード
翻訳日付:
HTML生成日時:
編集者: dokutoku