Вот суть моей программы:
У меня есть базовый класс с именем Person . У него есть ребенок по имени Президент . Я пытаюсь создать функцию "printInfo" в классе President , которая печатает все свои атрибуты из обоих классов .
Самым простым изменением было просто дифференцировать функции путем изменения имен, но мне было интересно, есть ли способ сделать это, не меняя их.
(приведенный ниже код включает только соответствующие части, я упустил кучу других функций-членов, чтобы их было легче читать)
class Person : public Address {
public:
void printInfo(); // this prints the name and birthday
private:
string fname, lname, sex;
int month, day, year;
};
class President : public Person {
private:
int term;
public:
void printInfo(); // this prints term
};
void President::printInfo() {
cout << term << " : ";
this->printInfo(); //need this to use the person version of itself
};
Что я хочу:
1 : George Washington ....
Фактический результат:
1 : 1 : 1 : ....