Я пытаюсь переопределить метод базового класса, используемый другим методом в базовом классе; однако, когда производный класс вызывает метод-метод базового класса, производный использованный-метод никогда не выполняется, а вместо этого используется метод-метод базового класса. Вот пример:C++ сделать переопределенные методы базового класса в дочернем классе
#include <iostream>
using namespace std;
class Base {
public:
Base() {}
virtual ~Base() {}
void printLeft() { cout << this->getLeft(); }
int getLeft() { return 0; }
};
class Derived: public Base {
public:
Derived() {}
virtual ~Derived() {}
int getLeft() { return 1; }
};
int main(int argc, char *argv[]) {
Derived d = Derived();
d.printLeft();
}
Запуск main()
0
отпечатков, указывающих getLeft()
метода Base
«ы был использован вместо метода производного объекта.
Как я могу изменить этот код, так Derived::getLeft()
называется при вызове из экземпляра Derived?
Извините, у меня нет времени. Этот проект должен быть завтра. Спасибо, однако, за полезное предложение. – weberc2
Для лифтера (-ов), есть ли что-то особенное в этом вопросе? Должен ли я что-то прояснить? Я пытался исследовать, но, поскольку я не знаю терминологию феномена, который я пытаюсь описать, я не смог найти никаких подходящих результатов. – weberc2
Я остановил этот вопрос, но я этого не делал, пока вы не сказали мне, что вы не хотите читать книгу, чтобы изучить C++. –