Нет способа добавить еще поведение в метод, который не ожидается в C ++.Но вы можете разработать свой метод для добавления с самого начала:
class uni_person
{
public:
string f_name; // 1
string s_name; // 2
int age; // 3
string institute;// 5
string uni; // 6
string p_number; // 7
void addSmth()
{
int x;
cout << "What do you want to add about the student ?\n1: first name\n2: second name\n3: age\n4: course\n5: institute\n6: university\n7: phone number\n8: group\n";
cin >> x;
switch (x) {
case 1: cin >> f_name; break;
case 2: cin >> s_name; break;
case 3: cin >> age; break;
case 5: cin >> institute; break;
case 6: cin >> uni; break;
case 7: cin >> p_number; break;
default: cout << "Error" << endl; break;
}
// Call additional code. Does nothing by default.
appendix();
}
protected:
virtual void appendix() {}
};
class Student: public uni_person
{
public:
int course;
int group;
private:
void appendix() override
{
// Code from your Student::addSmth().
// Will be called at the end of uni_person::addSmth().
int x;
cout << "What do you want to add about the student ?\n1: first name\n2: second name\n3: age\n4: course\n5: institute\n6: university\n7: phone number\n8: group\n";
cin >> x;
switch (x) {
case 4:case 4: cin >> course; break;
case 8: cin >> group; break;
}
}
};
Другой дочерний класс может добавить какое-то другое поведение, которое будет вызываться правильно из-за виртуальности.
Также обратите внимание на других участниковСоветы о вашем дизайне и стиле кода.