class Person { public: string name; int age; virtual void getdata() { cin >> this->name >> this->age; } virtual void putdata() { cout << this->name << " " << this->age << endl; } }; class Professor : public Person { public: Professor() { this->cur_id = ++id; } int publications; static int id; int cur_id; void getdata() { cin >> this->name >> this->age >> this->publications; } void putdata() { cout << this->name << " " << this->age << " " << this->publications << " " << this->cur_id << endl; } }; int Professor::id = 0; class Student : public Person { #define NUM_OF_MARKS 6 public: Student() { this->cur_id = ++id; } int marks[NUM_OF_MARKS]; static int id; int cur_id; void getdata() { cin >> this->name >> this->age; for (int i=0; i> marks[i]; } } void putdata() { int marksSum = 0; for (int i=0; iname << " " << this->age << " " << marksSum << " " << this->cur_id << endl; } }; int Student::id = 0;