Class C++

#include   
  using namespace std;  
  class person{  
     protected:  
        char name[40];  
     public:  
        void getName()  
           { cout << "   Enter name: "; cin >> name; }  
        void putName()  
           { cout << "Name is: " << name << endl; }  
        virtual void getData() = 0;
        virtual bool isOutstanding() = 0;
    };  
  class student : public person{  
     private:  
        float gpa;             
     public:  
        void getData(){  
           person::getName();  
           cout << "   Enter student's GPA: "; cin >> gpa;  
        }  
        bool isOutstanding()  
        { 
           return (gpa > 3.5) ? true : false; 
        }  
  };  
  class professor : public person{  
     private:  
        int numPubs;             
     public:  
        void getData(){  
           person::getName();  
           cout << "   Enter number of professor's publications: ";  
           cin >> numPubs;  
        }  
        bool isOutstanding()  
        { 
           return (numPubs > 100) ? true : false; 
        }  
  };  
  int main(){  
     person* persPtr[100];
     int n = 0;           
     char choice;  
    
     do {  
        cout << "Enter student or professor (s/p): ";  
        cin >> choice;  
        if(choice=='s')   
           persPtr[n] = new student;     
        else                             
           persPtr[n] = new professor;   
        persPtr[n++]->getData();         
        cout << "   Enter another (y/n)? ";
        cin >> choice;  
     } while( choice=='y' );          
    
     for(int j=0; j        persPtr[j]->putName();           
        if( persPtr[j]->isOutstanding() )  
           cout << "   This person is outstanding\n";  
     }  
     return 0;  
  }