#ifndef OBJECT_HPP_INCLUDED
#define OBJECT_HPP_INCLUDED

class Class;

class Object
{
    public:
        void* Obj;
        Object();
        Object(const void* Obj);
        Object(const Object& O);
        Object(Object&& O);
        Object& operator=(const Object& O);
        bool operator==(const Object& O) const;
        bool operator!=(const Object& O) const;
        bool Equals(Object O) const;
        bool InstanceOf(Class C) const;
        operator bool() const;
        operator void*() const;
        ~Object();
};

#endif // OBJECT_HPP_INCLUDED
