- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# FUtils/FUObjectType.h File Reference

This file contains the FUObjectType class. More...

Go to the source code of this file.

## Classes
class | FUObjectType
| An object type. More...
## Defines
#define | DeclareObjectType(_ParentClass)
| Declares the object type for an object class.
#define | ImplementObjectType(ClassName)
| Implements the object type for an object class.
#define | ImplementObjectTypeT(ClassName)
| See above.
#define | ImplementObjectType_NoDefaultRelease(ClassName) FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName);
| Implements the object type for an object class, but without the Release() function.

## Detailed Description

This file contains the FUObjectType class.

## Define Documentation

#define DeclareObjectType | ( | _ParentClass |  | ) |

| Value:
    private: \
        static class FUObjectType __classType; \
        typedef _ParentClass Parent; \
    public: \
        static const FUObjectType& GetClassType() { return __classType; } \
        virtual const FUObjectType& GetObjectType() const { return __classType; } \
        virtual void Release(); \
    private:
  Declares the object type for an object class. Use this macro inside the class declarations of up-classes of the FUObject class to easily implement RTTI. Parameters:
  | _ParentClass | The class name for the parent class.

#define ImplementObjectType | ( | ClassName |  | ) |

| Value:
    FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName); \
        void ClassName::Release() { Detach(); delete this; }
  Implements the object type for an object class. Use this macro inside your code files only to create the objects necessary to support RTTI in your up-classes of the FUObject class. Parameters:
  | ClassName | The name of the class.

#define ImplementObjectType_NoDefaultRelease | ( | ClassName |  | ) | FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName);

  | Implements the object type for an object class, but without the Release() function. Use this macro inside your code files only to create the objects necessary to support RTTI in your up-classes of the FUObject class. You will need to manually implement the Release() function, without declaring it. The default implementation of the Release() function is the following: Release() { delete this; }. Parameters:
  | ClassName | The name of the class.

#define ImplementObjectTypeT | ( | ClassName |  | ) |

| Value:
    template <> \
        FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName); \
        template <> \
        void ClassName::Release() { Detach(); delete this; }
See above.