Въведение в преодоляването на C ++

Преодоляването на C ++ е един от начините за постигане на полиморфизъм във времето на изпълнение, при което ние модифицираме поведението на същия метод. По принцип детският клас наследява функциите-членове и членовете на данните от базовия клас. Но когато нашата нужда е да отменим функционалността в детския клас, тогава трябва да използваме функция, която отменя. Преопределянето предоставя привилегия на методите да имат едно и също име както в базовия клас, така и в неговия производен клас. Това ни дава възможност да променим поведението на функциите, присъстващо в базовия клас, в неговите производни класове според нашите нужди.

Как Преодоляването работи в C ++?

Преди да разберем първостепенното, нека първо разберем полиморфизма. Буквалното значение на полиморфизма е много форми, т.е. има множество форми на едно конкретно нещо. В обектно-ориентирания език за програмиране това е една от полезните функции. При наследяването се постига полиморфизъм чрез преимущество на функция или метод, когато и базовите, и производни класове имат една и съща декларация за член-функция, но тяхното определение ще бъде различно.

За да направим това, първо трябва да наследим от клас в получения клас. Тогава трябва да предоставим различни дефиниции според нуждите, за който и да е от методите на базовия клас отново в извлечения клас. Едва тогава се казва, че тази функция е отменена и този стъпка по стъпка процес се нарича Функция Overriding.

Да речем, вземете сценарий, при който нашето приложение има изискването да промени поведението на метода на базовия клас в производен клас, тогава трябва да използваме функцията за преодоляване . За да отменим функция в извлечения клас, трябва да имаме един и същ подпис в дъщерния клас, а имената на функциите трябва да са еднакви в двете бази и производни класове. Тук подпис означава използване на същия тип данни и последователност от параметри, които трябва да бъдат предадени във функцията. Ако няма нужда от параметри, тогава няма нужда да използваме нито един параметър в основната функция, както и дъщерната функция. По-долу имаме някои точки, които трябва да имаме предвид, преди да използваме по-важни.

  • В програмирането на C ++ преодоляването ще бъде пример за полиморфизъм на Run time или динамичен полиморфизъм.
  • Преопределянето е възможно само в методите, присъстващи в производни класове, тъй като методът се отменя в производен клас от базовия клас.
  • За да се постигне надвишаване, функциите, присъстващи в базови и производни класове, трябва да имат едно и също име, същия тип връщане и същите параметри.

Методът, който се отменя от декларацията за отмяна, се нарича метод на преодоляване на основата. Базовият клас ще съдържа този метод. От този основен клас се наследява свеж реализиран метод, наречен override метод. Когато създадем обект от извлечения клас и извикаме функцията член, която съществува както в базовия, така и в извлечения клас, функцията член на базовия клас ще бъде игнорирана и членската функция на производния клас ще бъде извикана.

По-долу са изброени изискванията за отмяна на метода:

  • Първото и най-важно нещо е Наследяването трябва да има от база до производен клас, тъй като функцията за отмяна на функцията не може да се извършва в един и същи клас. За да постигнем това се нуждаем от базов клас и производен клас.
  • Предефинираната функция трябва да има точно една и съща декларация както в базовия, така и в извлечения клас. Какво означава това? Това означава, че функциите трябва да имат едно и също име, същия подпис и същия списък с параметри.

Пример за преодоляване

код

class Animal
(
public:
void Message ( )
(
cout << "Hello there!! I am Animal";
)
);
class Dog: public Animal
(
public:
void Message ( )
(
cout << "I am Dog!!";
)
)

В горния пример функцията Съобщение () се отменя в извлечения клас.

Пример със стъпки

1. Нека да разгледаме примера, използвайки функция main (), за да разберем по-добре преобладаващото.

2. Създайте основен клас с всяко име. Тук използвам Animal. Напишете метод за показване на съобщение за показване. Това ще бъде нашият отменен метод, който ще отменим в наследения клас. Вътре в метода напишете съобщение за отпечатване.

class Animal
(
public void Message( )
(
cout << "Hello there!! I am Animal";
)
)

3. Сега създайте още едно куче от клас. Този път ще го наследим от базовия клас, който създадохме по-рано, т.е. Animal. За наследяване използваме символа ':'.

class Dog: public Animal

4. Тук декларираме една и съща функция Message () за различно изпълнение и пишем някакво съобщение. Уверете се, че името и подписът на метода в извлечения клас съвпадат с името на метода и подписа в базовия клас.

public void Message ( )
(
cout << "Hey!! I am Dog";
)

5. Нужен ни е още един клас, за да изпълним функционалността, за да проверим по-важното. Създайте клас с произволно име. Вътре в това пише основната функция.

class ExecutionClass
(
int Main( )
(
)
)

6. Създайте обект от родителския клас и задействайте функцията, като използвате обекта на класа. Това ще се позове на метода на съобщението, присъстващ в клас Animal.

Animal animalObject;
animalObject.Message( );

7. Сега създайте обекта на извлечения клас и извикайте метода на съобщението. Това ще се позове на метода на съобщението на класа Dog.

Dog dogObject;
dogObject.Message( );

8. Какъв ще бъде резултатът от този код? Можете ли да го познаете? Това е както е показано по-долу.

изход:

9. В горния пример извикваме функцията със същото име и подпис, използвайки обект, създаден за производен и базов клас отделно. И в двата случая различни версии на функцията ще бъдат извикани за базовия и производен клас.

заключение

В тази статия разбрахме метода за отмяна в C ++, необходимостта от метода, който отменя, реални примери на принципа на преодоляване, начина за постигането му и примера за отменяне с помощта на кода. Можем да заключим, че преодоляването е една от полезните характеристики на полиморфизма в C ++, при която можем да променим поведението на метода на базовия клас в производен клас.

Препоръчителни статии

Това е ръководство за преодоляване на C ++. Тук обсъждаме как работи Overriding в C ++, прост пример с различни стъпки. Можете също да разгледате и другите ни свързани статии, за да научите повече-

  1. Масиви в C ++
  2. Въведение в C ++
  3. C ++ команди
  4. Копиране на конструктор в C ++
  5. Ръководство за преодоляване на OOPs
  6. По-важно в Java