| 1 | = !ClassIdentifier = |
| 2 | |
| 3 | == Description == |
| 4 | |
| 5 | 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]. |
| 6 | |
| 7 | 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.) |
| 8 | |
| 9 | You can't access the ClassIdentifier of a class directly. Use [wiki:ClassManager]<ClassName>::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<ClassName>::getIdentifier(). |
| 10 | |
| 11 | 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]. |
| 12 | |
| 13 | You can iterate through all objects in a [wiki:ObjectList] by using an [wiki:Iterator]. Read the related Wiki-page to get more informations. |