C++ Как перегрузить метод так, чтобы при вызове из списка (родительского) вызывался дочерний метод
Я бы хотел чтобы дочерние структуры были в списке с общим типом чтобы позже вызывать для них метод с похожим именем(и аргументами) но разными реализациями
Через virtual
и override
не получильсь:
#include <iostream>
using namespace std;
struct Parent {
virtual void say() {
cout << "parent say\n";
}
};
struct Child : Parent {
void say() override {
cout << "child say\n";
}
};
int main() {
Parent a[2];
Child x;
a[1] = x;
a[0].say();
a[1].say();
return 0;
}
На выходе:
parent say
parent say
То есть тут я хочу изменить метод say
только у a[1]
. Или так нельзя? Ведь имя и аргументы те же