CLASS *new_CLASS() {
SUPER_CLASS *s;
CLASS *this;
/* Construct super class */
s = new_SUPER_CLASS();
/* Allocate memory for this object */
this = calloc(1,sizeof(CLASS));
/* Inherit everything you can from the superclass */
memmove(this,s,sizeof(CLASS);
/* We're done with the superclass's memory */
free(s);
/* Assign methods to object */
this->f1 = f1;
/* Inialize attributes here. Open files, allocate etc.*/
return(this);
}
void destroy_CLASS(CLASS *this) {
/* Free any specific data: */
free(this->p);
/* Close any files specific to this class: */
fclose(this->file);
/* Call the superclass's destructor */
destroy_SUPER_CLASS(this);
}
void destroy_SUPER_CLASS(SUPER_CLASS *this) {
free(this);
}