Object interface added.

This commit is contained in:
Kolan Sh 2012-05-03 16:03:48 +04:00
parent d61bd920c5
commit 8bc5c25008
2 changed files with 19 additions and 0 deletions

View File

@ -24,18 +24,22 @@ static inline const char* Figure_type (const Figure *this)
{ {
return this->vtable->type (); return this->vtable->type ();
} }
static inline Figure* Figure_clone (const Figure *this) static inline Figure* Figure_clone (const Figure *this)
{ {
return this->vtable->clone (this); return this->vtable->clone (this);
} }
static inline void Figure_destroy (Figure *this) static inline void Figure_destroy (Figure *this)
{ {
this->vtable->destroy (this); this->vtable->destroy (this);
} }
static inline void Figure_draw (const Figure *this) static inline void Figure_draw (const Figure *this)
{ {
this->vtable->draw (this); this->vtable->draw (this);
} }
static inline double Figure_area (const Figure *this) static inline double Figure_area (const Figure *this)
{ {
return this->vtable->area (this); return this->vtable->area (this);

View File

@ -14,4 +14,19 @@ typedef struct Object
} Object; } Object;
static inline const char* Object_type (const Object *this)
{
return this->vtable->type ();
}
static inline Object* Object_clone (const Object *this)
{
return this->vtable->clone (this);
}
static inline void Object_destroy (Object *this)
{
this->vtable->destroy (this);
}
#endif // __OBJECT_H__ #endif // __OBJECT_H__