в последние недели что-то подталкивает мой мозг к виртуальному и переопределению.
Я узнал, что когда вы наследуете виртуальную функцию, вам нужно добавить virtual
, чтобы компилятор знал, что нужно искать правильную функцию.
Впоследствии я узнал также, что в С++ 11 есть новое ключевое слово - переопределить. Теперь я немного смущен; Нужно ли мне использовать как виртуальные, так и переопределяющие ключевые слова в моей программе, или лучше использовать только один из них?
Чтобы объяснить себя - примеры кода, что я имею в виду:
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 {}
};
Каков наилучший метод?