00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SK_UTIL_OBJECT
00009 #define SK_UTIL_OBJECT
00010
00011 #include <inttypes.h>
00012
00013 namespace sk {
00014 namespace util {
00015 class Class;
00016 class String;
00017
00022 class Object
00023 {
00024 public:
00025 virtual ~Object();
00026
00028 virtual Object& self();
00029 virtual const Object& self() const;
00030
00033 Object* clone() const;
00034
00036 virtual const Class getClass() const;
00037
00039 virtual uint64_t getId() const;
00040
00043 virtual const String toString() const;
00044
00047 virtual const String inspect() const;
00048
00049 protected:
00050 Object();
00051 };
00052 }
00053 }
00054
00055 #endif