home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / cdactual / demobin / share / program / C / ANSICPP.ZIP / EX09019.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-24  |  879 b   |  36 lines

  1. // ex09019.cpp
  2. // Virtual destructor
  3.  
  4. #include <iostream.h>
  5. #include <string.h>
  6.  
  7. class Company    {
  8.     char *name;
  9. public:
  10.     Company(char *s)
  11.         { name = new char[strlen(s+1)]; strcpy(name, s); }
  12.     virtual ~Company() 
  13.         { cout << "\nC destructor"; delete name;}
  14.     void org_name() { cout << name; }
  15. };
  16.  
  17. class Division : public Company    {
  18.     char *manager;
  19. public:
  20.     Division(char *s, char *mgr) : Company(s) 
  21.     {manager=new char[strlen(mgr+1)]; strcpy(manager, mgr);}
  22.     ~Division() { cout << "\nD destructor"; delete manager;}
  23. };
  24.  
  25. main()
  26. {
  27.     Company *companies[3]; 
  28.     companies[0] = new Company("Bilbo Software, Inc.");
  29.     companies[1] = new Division("Vert Apps", "Ron Herold");
  30.     companies[2] = new Division("Horiz Apps", "Bob Young");
  31.     for (int i = 0; i < 3; i++)    {
  32.         // ....... process the company objects
  33.         delete companies[i]; // always right destructor
  34.     }
  35. }
  36.