Другое

Override C: что это за модификатор и как он используется в разработке?

Lorem ipsum dolor

Когда вы начнете изучать объектно-ориентированное программирование и в частности языки С или С++, то вы непременно столкнетесь с вопросом: override C что это такое?

Override в языке программирования C является специальным типом идентификатора, который указывает на переопределение методов. Переопределение методов — это очень удобный и нужный механизм. Его смысл заключается в том, что вы создаете собственный дочерний метод в производственном классе, который повторяет какой-нибудь родительский метод, но со своей спецификацией. То есть перераспределение дает возможность изменять родительский класс до нужной нам функциональности. А при желании метод базового класса может быть и вовсе полностью переписан.

 

Что значит override в языке C

Если мы хотим переопределить метод, то нам для этого нужно оповестить систему. Для такого оповещения используется слово «virtual». Поэтому «virtual» и «override» идут рядом:

  • virtual оповещает систему о необходимости переопределения метода;

  • override — показывает, что после этого слова идет переопределенный метод.

Часто необходимость переопределения методов возникает случайно. К примеру, на каком-то этапе разработки вы осознаете, что реализация родительского метода работает не так, как вам это надо. Вы понимаете, что родительский метод нужно чуть-чуть доработать. Вы не хотите придумывать новый метод, просто потому что у старого метода отличное название, тогда вы решаете доработать старый. Тут вам и пригодится слово-идентификатор override.

Из всего уже сказанного можно выделить 2 цели, которые преследует это слово override в языке C:

  1. Показать читателю кода, что после этого слова идет переопределенный виртуальный метод.

  2. Показать компилятору, что переопределенный метод — это не новый метод, а усовершенствованный старый.

 

Что это такое override в языке C на примере

Приведем простейший пример для понимания работы этого слова-идентификатора. 

Итак, допустим, у вас есть некий объект obj, у которого есть функция void hello():

class obj {

    virtual void hello(); // Code : printf("Привет!");

}

Также у вас есть дочерний объект obj с функцией hello():

class bar : obj {

    // no functions in here but yet, you can call

    // bar.hello()

}

В этом случае вы можете вывести: «Привет, мир!», когда функция hello() будет вызываться из объекта bar. Осуществить это можно переопределением метода:

class bar : obj {

    virtual void hello() override; // Code : printf("Привет, мир!");

}

 

Выводы

Override в языке С применять несложно, главное уловить время и место, когда это необходимо сделать. Использовать такой подход переопределения можно в разных случаях, главное нужно запомнить, что:

  • идентификатор override в языке С показывает, что после него используется измененный переопределенный дочерний метод;

  • если хотите использовать override, то родительский метод обязательно должен быть помечен словом virtual.

Схожие статьи

Scrum: революционный метод управления проектами – обзор метода и книга
Другое

Scrum: революционный метод управления проектами – обзор метода и книга

CSS Grid: адаптивная верстка. Полноценный гайд с примерами макетов
Другое

CSS Grid: адаптивная верстка. Полноценный гайд с примерами макетов

Важнейшие аспекты информационной безопасности: 3 основы
Другое

Важнейшие аспекты информационной безопасности: 3 основы

Создание ландшафта для игры в Unity3D, модели деревьев, текстура травы
Другое

Создание ландшафта для игры в Unity3D, модели деревьев, текстура травы