Итак, мне было интересно, возможно ли в C ++ вызвать метод родительского класса, который использует замещенный метод, без использования родительской версии замещенного метода. (Я знаю, что это непонятно, поэтому я привел пример!)
Например, ниже я хотел бы вызвать версию findPath () класса A из объекта класса B, используя метод addPoint, который определен по классу B. В настоящее время, если я вызываю findPath () из объекта класса B, он использует метод addPoint, определенный в классе A.
Фактический результат:
A.findPath (), путь = {1,2,3,4,5,6,7,8,9,10)
B.findPath (), path = {1,2,3,4,5,6, 7,8,9,10)
Желаемый результат:
A.findPath (), path = {1,2,3,4,5,6,7,8,9, 10}
B.findPath (), path = {2,4,9,16,25,36,49,64,81,100}
class A
{
public:
vector<int> path;
void addPoint(int num) {
path.push_back(num);
}
vector<int> findPath() {
for (int i = 0; i < 10; i++) {
addPoint(i);
}
}
};
class B : public A
{
public:
void addPoint(int num) {
path.push_back(num*num);
}
};
В настоящий момент я копирование и вставка findPath в класс B для получения желаемого результата, но я чувствую, что должен быть более простой способ. Спасибо!