In the Super Simple Type System a function is what it is in standard C. No extra meaning is given to them here.
In the Super Simple Type System a method is part of an object. In reality they are just function pointers that point to private C functions.
most often methods are not to be accessed directly, even if it is possible, it is considered a bad idea, instead use the different object functions that accuses the methods.
Methods are stored in the class object. In computer science terms it
can be likened to an objects v-table
. An example of this
deinitize ()
method that exists in all objects that has
a class set that inherent from
SBaseObjectClass
:
typedef struct _FooClass FooClass; struct FooClass { SBaseObjectClass parent_class; void (* foo_method)(Foo *); };
an instance of this object contains the same v-table
as
SBaseObjectInstance
(and its own method), and as such you
can use the s_base_object_free ()
function on the object
and the method will be run.[*]
More on this on the inheritance page.