Как да приложим претоварване и заместване на функции в C ++?



Тази статия ще ви запознае с претоварването и заместването на функции в C ++, които са две от много важните концепции на OOPS.

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

Следните указания ще бъдат разгледани в тази статия,





Продължавайки с тази статия за претоварване и заместване на функции в C ++

Претоварване на функцията



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

Например:

sum (int a, float b) sum (int a, int b) sum (int a, int b, int c)

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



Ако типовете връщане на функциите са различни, то се счита за невалидно.

Продължавайки с тази статия за претоварване и заместване на функции в C ++

Примерен код за функция при зареждане

включва използване на пространство на имена std клас Добавяне {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {Добавяне мода< 

Изход

Изход - Претоварване и заменяне на функции в C ++ - Edureka

Обяснение

В горната програма имаме две функции в класа за добавяне. И двете имена добавят. Единият има 2 параметъра, а другият има 3 параметъра.

урок за визуално студио за начинаещи

В основната функция създаваме обект от добавяне на клас, наречен a. Извикваме функциите за добавяне съответно с параметри 2 и 3 и функциите за добавяне се извикват и те извършват събиране.

Ето как става претоварването на функцията.

Продължавайки с тази статия за претоварване и заместване на функции в C ++

Замяна на функцията

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

Примерен код за замяна на функцията

#include използвайки std клас baseClass {public: void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 } 

Изход:

Обяснение:

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

Продължавайки с тази статия за претоварване и заместване на функции в C ++

Поръчка за извършване на замяна

Помислете за кода:

#include използвайки std клас baseClass {public: void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 } 

Изход:

Обяснение:

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

Синтаксис

Име_клас_на_ родител :: функция ()

В горния пример го използваме като

BaseClass :: disp ()

Това е друг начин за отмяна.

Претоварване на функцията VS Замяна на функцията

настройте затъмнение за java -
Претоварване на функцията Замяна на функцията
Обхватът е същиятОбхватът е различен
Подписите трябва да се различават (напр. Параметър)Подписите трябва да са еднакви
Брой функции за претоварванеВъзможна е само една заместваща функция
Може да настъпи без наследяванеПоявява се главно поради наследяване

По този начин стигнахме до края на тази статия за „Претоварване и заместване на функции в C ++“. Ако искате да научите повече, разгледайте от Edureka, доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.