виртуальная? переопределить? или оба? C ++ [дубликат]
На этот вопрос уже есть ответ здесь:
Является ли ключевое слово override просто проверкой переопределенного виртуального метода? 5 ответовв последние недели что-то заставляет меня думать о виртуальности и переопределении. Я узнал, что когда вы делаете наследование с виртуальной функцией, вы должны добавитьvirtual
дать компилятору знать, чтобы искать правильную функцию. Впоследствии я также узнал, что в c ++ 11 есть новое ключевое слово - override. Теперь я немного смущен;Нужно ли использовать в моей программе как виртуальные, так и переопределенные ключевые слова, или лучше использовать только одно из них?
Чтобы объяснить себя - приведите примеры того, что я имею в виду:
class Base
{
public:
virtual void print() const = 0;
virtual void printthat() const = 0;
virtual void printit() const = 0;
};
class inhert : public Base
{
public:
// only virtual keyword for overriding.
virtual void print() const {}
// only override keyword for overriding.
void printthat() const override {}
// using both virtual and override keywords for overriding.
virtual void printit() const override {}
};
Какой метод самый лучший?