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
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 javaPrzechodzą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 sam Zakres jest inny Podpisy muszą się różnić (np. Parametr) Podpisy muszą być takie same Liczba możliwych funkcji przeciążeniowych Możliwa tylko jedna funkcja nadrzędna Może wystąpić bez dziedziczenia Wystę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.