After:

class course
{
   public:
   virtual void print(){ cout << name << " (" << courseNumber << ") "; }
   string getType() { return "course"; }

   protected:
      string name;
      int courseNumber;
};

class lab: public course
{
   public:
   virtual void print(){ cout << name << " has lab fee $ " << labFee; }
   string getType() { return "lab"; }

   private:
      double labFee;
};

class grad: public course
{
   public:
   virtual void print(){ cout << name << " has graduate tuition $ " << tuition; }
   string getType() { return "grad"; }

   private:
      double tuition;
};

int main()
{
   course * schedule[4];
   schedule[0] = new course;
   schedule[1] = new lab;
   schedule[2] = new grad;
   schedule[3] = new course;

   for( int index = 0; index < 4; index++ )
   {
      schedule[index]->print();
   }
}