В последние недели что-то подталкивает мой мозг к виртуальному и переопределению. Я узнал, что когда вы наследуете виртуальную функцию, вы должны добавить virtual
, чтобы компилятор знал, что нужно искать правильную функцию. Впоследствии я узнал также, что в C++ 11 есть новое ключевое слово - переопределить. Теперь я немного смущен; Нужно ли мне использовать как виртуальные, так и переопределяющие ключевые слова в моей программе, или лучше использовать только один из них?виртуальный? переопределить? или оба? C++
объясниться - примеры кода того, что я имею в виду:
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 {}
};
Что такое лучший метод?
Вы должны использовать ключевое слово 'override' всякий раз, когда вы намереваетесь переопределить метод. Таким образом, если вы ошибочно назовете имя в производном классе, вы получите сообщение об ошибке, указывающее, что метод не найден для переопределения – Eric
[Является ли ключевое слово 'override' просто проверкой для переопределенного виртуального метода?] (Http: // stackoverflow.com/questions/13880205/is-the-override-keyword-just-a-check-for-a-overriden-virtual-method) – Solarflare
Более интересный вопрос: «Что произойдет, если я использую переопределение без виртуального» – Eric