home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_08_07 / 8n07117a < prev    next >
Text File  |  1990-06-19  |  888b  |  42 lines

  1. /*  Listing 2 - Constructor & Destructor Templates */
  2.  
  3. CLASS *new_CLASS() {
  4.    SUPER_CLASS *s;
  5.    CLASS *this;
  6.  
  7.    /* Construct super class */
  8.    s = new_SUPER_CLASS();
  9.  
  10.    /* Allocate memory for this object */
  11.    this = calloc(1,sizeof(CLASS));
  12.  
  13.     /* Inherit everything you can from the superclass */
  14.    memmove(this,s,sizeof(CLASS);
  15.  
  16.    /* We're done with the superclass's memory */
  17.    free(s);
  18.  
  19.    /* Assign methods to object  */
  20.       this->f1 = f1;
  21.  
  22.    /* Inialize attributes here. Open files, allocate etc.*/
  23.  
  24.     return(this);
  25. }
  26.  
  27. void destroy_CLASS(CLASS *this) {
  28.    /* Free any specific data: */
  29.       free(this->p);
  30.  
  31.    /*  Close any files specific to this class: */
  32.       fclose(this->file);
  33.  
  34.    /* Call the superclass's destructor */
  35.      destroy_SUPER_CLASS(this);
  36.  
  37. }
  38.  
  39. void destroy_SUPER_CLASS(SUPER_CLASS *this) {
  40.     free(this);
  41. }
  42.