Zastępowanie funkcji C ++

Zastępowanie funkcji C ++
W tym artykule omówimy nadrzędne funkcje w języku programowania C ++. C ++ obsługuje polimorfizm środowiska wykonawczego. W funkcji zastępującej, klasa dziecięca na nowo definiuje funkcję, która jest już zdefiniowana w swojej klasie nadrzędnej. Umożliwia programistę zapewnienie funkcjonalności specyficznej dla klasy (nawet jeśli jest zdefiniowany w klasie podstawowej). Teraz zobaczymy kilka przykładów i zrozumiemy koncepcję nadrzędną funkcji w C++.

Przykład 1

Zdefiniowałem dwie klasy w poniższym kodzie przykładowym - klasie podstawowej i klasie pochodnej. Klasa podstawowa ma funkcję członka, i.mi., diss (). „Derived_class” jest odziedziczona po „base_class.„Funkcja„ disp () ”jest obecna w„ base_class ”, a następnie na nowo zdefiniowanej w„ Derived_class."

W funkcji Main () obiekt Odelive_class, i.mi., „D” powstaje. Następnie wywołujemy funkcję disp () w obiekcie klasy pochodnej, więc funkcja w klasie pochodnej zostanie wywołana. Wersja klasy podstawowej jest tutaj ignorowana. Możesz zobaczyć poniżej funkcję wyjściową jako - „disp () w klasie pochodnej."

#włączać
za pomocą przestrzeni nazw Std;
// klasa podstawowa
klasa base_class

publiczny:
void disp ()

Cout << "disp() function in base class." << endl;

;
//Klasy pochodnej
klasa Derived_Class: public base_class

publiczny:
void disp ()

Cout << "disp() function in derived class" << endl;

;
int main ()

Derived_class d;
D.disp (); // disp () funkcja na obiekcie klasy pochodnej
powrót 0;

Przykład-2

W tym przykładzie zobaczymy, jak celowo wywołać wersję klasy podstawowej funkcji za pośrednictwem obiektu klasy pochodnej. W definicji funkcji klasy pochodnej używamy operatora rozdzielczości zakresu [::], aby wywołać wersję klasy podstawowej funkcji.

#włączać
za pomocą przestrzeni nazw Std;
klasa base_class

publiczny:
void disp ()

Cout << "disp() function in base class." << endl;

;
klasa Derived_Class: public base_class

publiczny:
void disp ()

Base_class :: disp (); // zadzwoń do klasy podstawowej wersji disp ()

;
int main ()

Derived_class d;
D.disp ();
powrót 0;

Przykład-3

To kolejny przykład zastępowania funkcji. W tym przykładzie stworzyliśmy klasę macierzystą - zwierzę i dwie pochodne klasy - kaczka i pies. Klasa podstawowa, ja.mi., Klasa zwierząt ma funkcję członkowską Sound ().

W klasie pochodnej/dzieci, ja.mi., Pies, na nowo zdefiniowaliśmy tę samą funkcję, i.mi., Sound (), aby zastąpić definicję klasy podstawowej. Podobnie, w drugiej klasie pochodnej, ja.mi., Kaczka, na nowo zdefiniowaliśmy tę samą funkcję, i.mi., dźwięk().

W funkcji Main () stworzyliśmy obiekt „psa” „psa” i „kaczki” „kaczki”.”Tak więc, kiedy wywołujemy funkcję dźwięku () dla psów i kaczki, wywołana funkcja klasycznej klasy (). Możesz zobaczyć wyjście programu, jak pokazano poniżej. Tak więc, przy pomocy nadrzędnej funkcji, możemy wywołać funkcję pochodną specyficzną dla klasy.

#włączać
za pomocą przestrzeni nazw Std;
Zwierzę klasowe

publiczny:
void Sound ()

Cout << "Animal sound!" << endl;

;
// Klasa pochodna - klasa psów
Pies klasowy: zwierzę publiczne

publiczny:
void Sound ()

Cout << "Dog sound - bark." << endl;

;
// klasa pochodna - klasa kaczki
Kaczka klasowa: zwierzę publiczne

publiczny:
void Sound ()

Cout << "Duck sound - quack." << endl;

;
int main ()

Pies pies;
Kaczka;
pies.dźwięk(); // Sound () psa
kaczka.dźwięk(); // Sound () of Duck
powrót 0;

Wniosek

W tym artykule wyjaśniłem, że funkcja zastępuje w C++. Język C ++ obsługuje polimorfizm środowiska wykonawczego. Nadrzędność funkcji pomaga osiągnąć polimorfizm w czasie wykonywania w C++. W tym artykule dotyczyło koncepcji nadrzędnej funkcji i sposobu osiągnięcia polimorfizmu w środowisku wykonawczym przy użyciu zastępowania funkcji.