Jak zaimplementować przeciążanie i zastępowanie funkcji w C ++?



Ten artykuł wprowadzi Cię w funkcję przeciążania i zastępowania funkcji w C ++, które są dwiema bardzo ważnymi koncepcjami OOPS.

C ++ to plik w naturze i posiada różne cechy. W tej sesji będziemy dyskutować, jak zaimplementować przeciążanie funkcji i nadpisywanie funkcji w C ++.

Następujące wskaźniki zostaną omówione w tym artykule,





Przechodząc dalej do tego artykułu na temat przeciążania funkcji i zastępowania w C ++

Przeciążanie funkcji



Funkcje mające tę samą nazwę, ale różne parametry są dozwolone w C ++ i są wywoływane Przeciążanie funkcji . Nazywa się to również polimorfizmem w czasie kompilacji.

gdzie należy zadeklarować zmienne instancji w java

Na przykład:

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

Tutaj są trzy funkcje o tej samej nazwie, ale jedyną rzeczą, która je odróżnia, jest to, że parametry są różne na każdej z nich. Zatem w zależności od przekazanych parametrów wywoływana jest funkcja.



Jeśli zwracane typy funkcji są różne, jest to uważane za nieprawidłowe.

Przechodząc dalej do tego artykułu na temat przeciążania funkcji i zastępowania w C ++

Przykładowy kod funkcji nadmiernego ładowania

include using namespace std class Addition {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {Addition cout< 

Wynik

Wyjście - Przeciążanie i nadpisywanie funkcji w C ++ - Edureka

Wyjaśnienie

W powyższym programie mamy dwie funkcje w klasie dodawania. Oba nazwane add. Jeden ma 2 parametry, a drugi 3 parametry.

W funkcji głównej tworzymy obiekt dodawania klas o nazwie a. Funkcje add nazywamy odpowiednio 2 i 3 parametrami, a funkcje add są wywoływane i wykonują dodawanie.

W ten sposób następuje przeciążenie funkcji.

jak stworzyć klasę singleton w java

Przechodząc dalej do tego artykułu na temat przeciążania funkcji i zastępowania w C ++

Funkcja zastępująca

Gdy klasa pochodna ma funkcję o takiej samej nazwie jak funkcja klasy bazowej, jest wywoływana Funkcja zastępująca. Obie funkcje muszą mieć te same parametry w obu klasach.

Przykładowy kod zastępowania funkcji

#include using namespace std class 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 } 

Wynik:

Wyjaśnienie:

W powyższym programie pokazujemy podstawową funkcję o tej samej nazwie w klasie pochodnej i bazowej. Tutaj obiekt jest tworzony z klasy pochodnej, więc kiedy wywołujemy display, wyświetlany jest tylko obiekt klasy potomnej.

Przechodząc dalej do tego artykułu na temat przeciążania funkcji i zastępowania w C ++

Nakaz wykonania nadpisania

Rozważ kod:

#include using namespace std class 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 } 

Wynik:

Wyjaśnienie:

W powyższym programie pokazujemy podstawową funkcję o tej samej nazwie w klasie pochodnej i bazowej. Tutaj jedyna różnica w stosunku do poprzedniego programu jest taka. Tworzymy obiekt klasy potomnej. Obiekt klasy potomnej otrzymuje odniesienie do klasy bazowej. Można to również zrobić inną metodą,

Składnia

Parent_class_name :: function ()

W powyższym przykładzie używamy go jako

BaseClass :: disp ()

To jest inny sposób nadpisywania.

Przeciążanie funkcji Zastępowanie funkcji VS

Przeciążenie funkcji Zastąpienie funkcji
Zakres jest taki samZakres jest inny
Podpisy muszą się różnić (np. Parametr)Podpisy muszą być takie same
Liczba możliwych funkcji przeciążeniowychMożliwa tylko jedna funkcja nadrzędna
Może wystąpić bez dziedziczeniaWystępuje głównie z powodu dziedziczenia

W ten sposób doszliśmy do końca tego artykułu o „Przeciążaniu i zastępowaniu funkcji w C ++”. Jeśli chcesz dowiedzieć się więcej, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na tym blogu, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.