Другое

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.

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

Замена фона без хромакея. Лучшие способы сменить фон бесплатно
Другое

Замена фона без хромакея. Лучшие способы сменить фон бесплатно

MVC: что это такое, в чем отличия между фреймворком и архитектурой
Другое

MVC: что это такое, в чем отличия между фреймворком и архитектурой

Для чего нужна док-станция, что это такое и как ее использовать
Другое

Для чего нужна док-станция, что это такое и как ее использовать

Другое

MacBook Pro: замена оперативной памяти. Как ее увеличить

×