We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
#include<cmath>#include<cstdio>#include<vector>#include<iostream>#include<algorithm>usingnamespacestd;classPerson{protected:intm_cur_id;stringm_name;intm_age;public:virtualvoidgetdata()=0;virtualvoidputdata()=0;};classProfessor:publicPerson{private:intm_publications;staticintid_tracker;public:Professor(){m_cur_id=++id_tracker;}voidgetdata()override{cin>>m_name;cin>>m_age;cin>>m_publications;}voidputdata()override{cout<<m_name<<" "<<m_age<<" "<<m_publications<<" "<<m_cur_id<<endl;}};intProfessor::id_tracker=0;classStudent:publicPerson{private:intm_marks[6];staticintid_tracker;private:intsumOfMarks(){intsum=0;for(inti=0;i<6;i++)sum+=m_marks[i];returnsum;}public:Student(){m_cur_id=++id_tracker;}voidgetdata()override{cin>>m_name;cin>>m_age;for(inti=0;i<6;i++){intmark;cin>>mark;m_marks[i]=mark;}}voidputdata()override{cout<<m_name<<" "<<m_age<<" "<<sumOfMarks()<<" "<<m_cur_id<<endl;}};intStudent::id_tracker=0;intmain(){intn,val;cin>>n;//The number of objects that is going to be created.Person*per[n];for(inti=0;i<n;i++){cin>>val;if(val==1){// If val is 1 current object is of type Professorper[i]=newProfessor;}elseper[i]=newStudent;// Else the current object is of type Studentper[i]->getdata();// Get the data from the user.}for(inti=0;i<n;i++)per[i]->putdata();// Print the required output for each object.return0;}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Virtual Functions
You are viewing a single comment's thread. Return to all comments →