Czysta funkcja wirtualna w C ++

Czysta funkcja wirtualna w C ++
Czysta funkcja wirtualna w języku programowania C ++ jest powszechnie znaną koncepcją w dziedzictwie C ++. Ta wirtualna funkcja może być używana w klasie abstrakcyjnej. Można go określić tylko w klasie abstrakcyjnej i nie można go zdefiniować. Wartość deklaracji dla czystej funkcji wirtualnej wynosi 0. Zatem ten artykuł jest wdrażany w celu ustalenia, w jaki sposób funkcja czysty wirtualna może być określona w klasie podstawowej i zdefiniowana w klasie pochodnej.

Uwaga: System operacyjny używany w tym samouczku to Ubuntu 20.04. Możesz użyć innych systemów Linux lub systemów Windows. Kompilator G ++ został wykorzystany do wdrożenia przykładów.

Przykład 01

Zaczynamy od prostego przykładu ilustrującego ogólną pracę i strukturę czystej funkcji wirtualnej w klasie abstrakcyjnej C ++. Musisz wiedzieć, że klasa abstrakcyjna nie zajmuje żadnego obiektu, ja.mi., nie utworzone. Możemy jednak używać wskaźników lub odniesień do dostępu do tej klasy i jej funkcji. Utwórz nowy plik C ++ za pomocą „dotykać”Zapytanie i otwórz go z redaktorem, takim jak Nano Editor.

$ Touch Pure.CC
$ nano czyste.CC

Każdy kod C ++ zaczyna się od zawartego w nim nagłówka strumienia wejściowego. Standard przestrzeni nazw musi zostać zadeklarowany później. Klasa abstrakcyjna została zainicjowana o nazwie „rodzic”. Zawiera jedną czystą deklaracja funkcji wirtualnej o nazwie „pokazywać()". Ta czysta funkcja została zainicjowana z 0. Klasa pochodna nazwana „Dziecko”Został zainicjowany. Ta klasa dziecięca uzyskuje dostęp do klasy nadrzędnej podczas korzystania z niej jako interfejsu. Klasa dziecka zawiera definicję metody show (). Metoda show () wyświetla tekst z „Cout”Klauzula. Oto metoda main (). Cała praca powinna zacząć się stąd:

Na początku metody main () wskaźnik klasy nadrzędnej „*P" został stworzony. Ponieważ klasa nadrzędna jest abstrakcyjna, nie możemy utworzyć jego obiektu. Klasa dziecka została zainicjowana z obiektem „C". Wskaźnik „*P„Klasy nadrzędnej uzyskuje dostęp do adresu obiektu klasy dzieci”C". Następnie wskaźnik „*P”Nazywa czystą funkcję wirtualną„pokazywać()”Według odniesienia. Po zapisaniu czystego kodu wirtualnego C ++ skompiluj go z pakietem kompilatora G ++. Do tej pory nie znaleziono błędów. Po uruchomieniu pliku mamy następujące dane wyjściowe:

$ g ++ czysty.CC
$ ./A.na zewnątrz

Wynik tej ilustracji można przeanalizować na załączonym obrazie powyżej.

Przykład 02

Spójrzmy na kolejny przykład użycia czystej funkcji wirtualnej w C++. Będziemy wykonywać obliczenia matematyczne w czystej metodzie wirtualnej. Zacznij więc od otwarcia tego samego pliku i trochę go zmodyfikuj. Dodaj pakiet nagłówka strumienia wejściowego i użyj również standardowej przestrzeni nazw w kodzie. Oświadczyliśmy klasę abstrakcyjną o nazwie „Wynik„Po przestrzeni nazw. Ta klasa zawiera zmienną typu całkowitą chronioną o nazwie „wynik”Używane do uzyskania znaków od użytkownika.

Prosta metoda typu publicznego została zdefiniowana w klasie abstrakcyjnej o nazwie „getscore ()". „„Cout”Klauzula w tej metodzie wymaga od użytkownika wprowadzenia pewnego wyniku. Funkcje otrzymałyby oceny od użytkownika jako dane wejściowe za pośrednictwem „Cin”Klauzula. Następnie czysta funkcja wirtualna „odsetek()”Deklaruje się tutaj 0. Klasa pochodna „Status”Jest zdefiniowane, aby uzyskać procent uczniów, uzyskując dostęp do klasy nadrzędnej jako interfejsu. „Status” klasy dzieci zawiera definicję czystej wirtualnej metody ”odsetek()" w tym:

Czysty procent funkcji wirtualnej () oblicza odsetek znaków studenckich. Ten odsetek znajduje się za pomocą procentowej formuły za pomocą znaków studenta. Znaki zostały uzyskane przez zmienną „wynik„Posiadanie znaków wprowadzonych przez użytkownika. Funkcja main () zawiera obiekt tworzenia klasy dzieci. Ten obiekt służy do wywołania metody getscore () w celu uzyskania znaków od użytkownika. Ten sam obiekt służy do wywołania funkcji Procent () w celu obliczenia procentu znaków wprowadzonych przez użytkownika.

Najpierw zapiszmy kod i wyjdźmy z pliku za pomocą „Ctrl+s" I "Ctrl+s”Odpowiednio.

Po powrocie do terminala najpierw skompiluj kod z pakietem kompilatora G ++. Następnie uruchom plik za pomocą „A.na zewnątrz" zapytanie. Poprosi o wprowadzenie znaków. Przy każdym wykonywaniu dodaliśmy trzy różne oceny i za każdym razem otrzymaliśmy trzy różne odsetki.

$ g ++ czysty.CC
$ ./A.na zewnątrz

Wynik tej ilustracji można przeanalizować na załączonym obrazie powyżej.

Wniosek

Na koniec zastosowaliśmy przykłady używania czystej funkcji wirtualnej w klasie abstrakcyjnej C ++. Użyliśmy klas abstrakcyjnych i pochodnych, aby zilustrować koncepcję czystej funkcji wirtualnej. Na podstawie dostarczonych informacji uważamy, że odtąd będzie łatwo pracować nad czystymi wirtualnymi funkcjami. Dziękujemy za przeczytanie tego artykułu i sprawdź inne artykuły dostarczone przez Linuxhint.com.