Увод у превладавање у Ц ++

Прекорачење у Ц ++ један је од начина постизања полиморфизма у току рада, при чему модификујемо понашање исте методе. Уопште, дечија класа наслеђује функције члана и чланове података из основне класе. Али када је наша потреба да надјачамо функционалност у дечијем разреду, тада морамо да користимо прегласавање функција. Поништавање даје привилегију методама да имају исти назив и у основној и у изведеној класи. Омогућује нам да променимо понашање функције присутне у основној класи, у њеним изведеним класама, према нашим потребама.

Како превладавање функционира у Ц ++?

Пре него што схватимо превладавајуће, прво схватимо полиморфизам. Буквално значење полиморфизма је много облика, тј. Има вишеструке облике једне одређене ствари. У објектно програмском језику ово је једно од корисних функција. У наслеђивању се постиже полиморфизам, надгласавањем функција или метода, када и основна и изведена класа имају исту декларацију о функцији чланова, али њихова дефиниција ће бити другачија.

Да бисмо то постигли, прво морамо да наслеђемо од класе у изведену класу. Затим би требало да пружимо различите дефиниције према потреби, за било коју од метода основне класе поново унутар изведене класе. Тек тада се каже да ће се ова функција прегласити, а овај корак по корак се назива прегласавање функције.

Рецимо да узмемо сценарио у којем наша апликација има захтев да промени понашање методе основне класе у изведеној класи, тада бисмо требали да користимо функцију прегласавања . Да би превладали функцију у изведеној класи, морамо имати исти потпис у подређеној класи, а такођер и имена функција требају бити иста у обје базе и изведене класе. Овдје потпис значи употребу истог типа података и низа параметара који се требају прослиједити у функцији. Ако нема потребе за параметрима, тада не требамо користити ниједан параметар у основној функцији, као ни дечију функцију. Испод имамо неколико точака на које морамо имати на уму пре него што користимо превладавајуће.

  • У Ц ++ програмирању, превладавање ће бити пример Полиморфизма извођења времена или Динамичког полиморфизма.
  • Поништавање је могуће само у методама присутним у изведеним класама, јер је метода надјачана у изведеном разреду из основне класе.
  • Да би се постигло прегласавање, функције присутне у основним и изведеним класама требале би имати исти назив, исти тип повратка и исте параметре.

Метода која се надјачава декларацијом прегласавања назива се метода оверридден басе. Базна класа ће садржавати овај метод. Из ове основне класе наслеђује се нова имплементација која се зове оверриде метода. Када креирамо објект изведене класе и назовемо функцију члана која постоји и у основној и у изведеној класи, функција члана основне класе ће се занемарити и позвати ће се функција изведене класе.

Испод су захтеви за прегласавање метода:

  • Прва и најважнија ствар је да наслеђивање треба да постоји од базе до изведене класе, јер прегласавање функција не може да се обавља унутар исте класе. Да бисмо то постигли потребна нам је основна класа и изведена класа.
  • Редефинирана функција треба имати потпуно исту декларацију у основним и изведеним класама. Шта то значи? То значи да би функције требале имати исто име, исти потпис и исту листу параметара.

Пример прегласавања

Код

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

У горњем примеру, функција Порука () је поништена у изведеној класи.

Пример са корацима

1. Погледајмо пример користећи главну () функцију да бисмо боље разумели превладавање.

2. Креирајте основну класу са било којим именом. Овде користим Анимал. Напишите начин да се нека порука прикаже. Ово ће бити наша поништена метода коју ћемо надвладати у наслеђеној класи. Унутар методе напишите неку поруку за штампање.

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

3. Сада створите још једног разреда Пас. Овај пут ћемо га наследити од основне класе коју смо креирали раније, тј. Животиње. За наслеђивање користимо симбол ':'.

class Dog: public Animal

4. Овде изјављујемо исту функцију Мессаге () за различите имплементације и пишемо неку поруку. Провјерите да ли се назив методе и потпис у изведеној класи подударају с именом методе и потписом у основној класи.

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

5. Потребна нам је још једна класа да бисмо извршили функционалност за провјеру превладавања. Направите класу са било којим именом. Унутра пише главна функција.

class ExecutionClass
(
int Main( )
(
)
)

6. Направите објект родитељске класе и покрените функцију помоћу објекта класе. Ово ће позвати методу поруке присутну у класи Анимал.

Animal animalObject;
animalObject.Message( );

7. Сада креирајте објект изведене класе и назовите методу поруке. Ово ће позвати методу поруке класе Дог.

Dog dogObject;
dogObject.Message( );

8. Шта ће бити излаз овог кода? Можете ли погодити? Ово је приказано испод.

Излаз:

9. У горњем примјеру позивамо функцију са истим именом и потписом, користећи објект креиран за изведену и основну класу одвојено. У оба случаја ће се за основну и изведену класу позвати различите верзије функције.

Закључак

У овом смо чланку схватили методу надјачавања у Ц ++, потребу за прегласавањем методе, примере стварног света принципа прегласавања, начин да се постигне и пример прегласавања помоћу кода. Можемо закључити да је прегласавање једна од корисних карактеристика полиморфизма у Ц ++ у којој можемо променити понашање методе основне класе у изведеној класи.

Препоручени чланци

Ово је водич за превладавање у Ц ++. Овде смо расправљали о начину функционисања Оверридинг у Ц ++, једноставан пример са различитим корацима. Можете и да прођете кроз наше друге сродне чланке да бисте сазнали више -

  1. Низи у Ц ++
  2. Увод у Ц ++
  3. Ц ++ команде
  4. Копирајте конструктор у Ц ++
  5. Водич за превазилажење ООП-ова
  6. Превладавање у Јави

Категорија: