= !ClassIdentifier = == Description == The ClassIdentifier is a template, inherited from [wiki:Identifier], containing all class specific functions for the class represented by the [wiki:Identifier]. In fact this is only the [wiki:ObjectList]. The constructor of ClassIdentifier is private. Only [wiki:IdentifierDistributor] is allowed to create and distribute new instances. (In fact only '''one''' instance per template-class. This is '''very''' important.) You can't access the ClassIdentifier of a class directly. Use [wiki:ClassManager]::getIdentifier() instead. The macro Class(classname) (include [wiki:CoreIncludes CoreIncludes.h] to use it) returns the ClassIdentifier of the given class. In fact this is only an abbreviation of ClassManager::getIdentifier(). Every class that uses the !RegisterObject(classname) or !RegisterRootObject(interfacename) macro (see [wiki:CoreIncludes]) is represented by an [wiki:Identifier], that stores all objects of this class (and of all inherited classes) in a [wiki:ObjectList]. The object gets removed from the list if it gets deleted. This is handled by the destructor of [wiki:OrxonoxClass] and the [wiki:MetaObjectList]. You can iterate through all objects in a [wiki:ObjectList] by using an [wiki:Iterator]. Read the related Wiki-page to get more informations.