dmd.dclass
    Defines a class declaration.
  
Specification: Classes
License
Source: dclass.d
Documentation: https://dlang.org/phobos/dmd_dclass.html
- 
  DeclarationstructBaseClass;- 
  DeclarationboolfillVtbl(ClassDeclarationcd, FuncDeclarations*vtbl, intnewinstance);Fill in vtbl[] for base class based on member functions of classcd.Input: vtblif !=NULL, fill it innewinstance!=0 means all entries must be filled in by members ofcd, not members of any base classes ofcd.Return Valuetrueif any entries were filled in by members ofcd(not exclusively by base classes)
 
- 
  
- 
  DeclarationclassClassDeclaration: dmd.aggregate.AggregateDeclaration;- 
  Declarationboolstack;trueif this is a scope class
- 
  DeclarationintcppDtorVtblIndex;if this is a C++ class, this is the slot reserved for the virtual destructor 
- 
  DeclarationBaseokbaseok;set the progress of base classes resolving 
- 
  DeclarationObjcClassDeclarationobjc;Data for a class declaration that is needed for the Objective-C integration. 
- 
  Declarationfinal pure nothrow @nogc boolisBaseOf2(ClassDeclarationcd);Determine if 'this' is a base class of cd. This is used to detect circular inheritance only.
- 
  Declarationpure nothrow @nogc boolisBaseOf(ClassDeclarationcd, int*poffset);Determine if 'this' is a base class of cd.
- 
  Declarationfinal const boolisBaseInfoComplete();Determine if 'this' has complete base class information. This is used to detect forward references in covariant overloads. 
- 
  Declarationfinal ClassDeclarationsearchBase(Identifierident);Search base classes in depth-first, left-to-right order for a class or interface named ' ident'. Stops at first found. Does not look for additional matches.ParametersIdentifieridentidentifier to search for Return ValueClassDeclaration if found, nullif not
- 
  Declarationfinal boolhasMonitor();Return Valuetrueif there's a __monitor field
- 
  Declarationfinal FuncDeclarationfindFunc(Identifierident, TypeFunctiontf);Find virtual function matching identifier and type. Used to build virtual function tables for interface implementations. ParametersIdentifieridentfunction's identifier TypeFunctiontffunction's type Return Valuefunction symbol if found, nullif notErrors: prints error message if more than one match 
- 
  Declarationfinal const boolisCOMclass();
- 
  Declarationfinal boolisAbstract();
- 
  Declarationconst intvtblOffset();Determine if slot 0 of the vtbl[] is reserved for something else. For class objects, yes, this is where the classinfo ptr goes. For COM interfaces, no. For non-COM interfaces, yes, this is where the Interface ptr goes. Return Value0 vtbl[0] is first virtual function pointer 1 vtbl[0] is classinfo/interfaceinfo pointer 
- 
  Declarationconst const(char)*kind();
- 
  Declarationfinal voidaddObjcSymbols(ClassDeclarations*classes, ClassDeclarations*categories);
 
- 
  
- 
  DeclarationclassInterfaceDeclaration: dmd.dclass.ClassDeclaration;- 
  Declarationpure nothrow @nogc boolisBaseOf(ClassDeclarationcd, int*poffset);Determine if 'this' is a base class of cd. (Actually, if it is an interface supported bycd)Output: * poffsetoffset to start of class OFFSET_RUNTIME must determine offset at runtimeReturn Valuefalsenot a basetrueis a base
- 
  Declarationconst const(char)*kind();
- 
  Declarationconst intvtblOffset();Determine if slot 0 of the vtbl[] is reserved for something else. For class objects, yes, this is where the ClassInfo ptr goes. For COM interfaces, no. For non-COM interfaces, yes, this is where the Interface ptr goes. 
 
-