Co to jest czysta funkcja wirtualna?
Prawie wszystkie typy programowania obiektowego (OOP), które tworzy programy i dzieli sekcje kodu na „obiekty”, mają funkcję zwaną czystą funkcją wirtualną, która różni się od funkcji wirtualnej. Zwana także funkcją abstrakcyjną, funkcja czysto wirtualna działa jako symbol zastępczy dla innych zmiennych i pobiera informacje z innych funkcji i klas, aby wypełnić puste pola. Zaletą korzystania z funkcji czysto wirtualnej jest to, że informacje są plastyczne i mogą być zmieniane według każdego użytkownika. Aby działać, musi istnieć klasa pochodna, z której pozyskiwane są dane.
Funkcja wirtualna jest podobna do czystego wariantu. Oba mogą się zmieniać w zależności od danych wejściowych użytkownika. Na przykład, jeśli użytkownik wpisze swoje imię, funkcja wirtualna zmieni się dla całego programu, aby uwzględnić jego nazwę. Różnica polega na tym, że funkcja wirtualna nie jest zależna od innych klas, ponieważ funkcja wirtualna ma własne ciało, które przekazuje dane wraz z innymi klasami i funkcjami wywołującymi informacje, w tym przykładzie nazwą użytkownika.
Natomiast czysto wirtualna funkcja nie ma żadnego ciała. Oznacza to, że sama funkcja abstrakcyjna jest bezużyteczna. Nie ma własnych danych, a jeśli klasa abstrakcyjna zostanie wywołana bez żadnych informacji, może to spowodować błąd. Czysta funkcja wirtualna musi mieć klasę pochodną lub klasę, która gromadzi dane dla funkcji abstrakcyjnej, aby działała.
Klasa pochodna może być pytaniem lub obszarem, w którym użytkownik wprowadza dane wejściowe, takie jak pole tekstowe. Informacje z tej klasy są następnie przekazywane do wszystkich podłączonych czysto wirtualnych funkcji, koordynując odpowiedzi. O ile funkcja abstrakcyjna nie jest specjalnie wywoływana, nie zostanie aktywowana, dopóki nie zostaną łatwo dostarczone dane.
Czyste funkcje wirtualne mają kilka zalet. Użycie funkcji abstrakcyjnej zamiast tworzenia całego ciała kodującego znacznie ogranicza ilość kodu, który programista musi utworzyć, szczególnie w przypadku dużych programów, które stale używają tych samych informacji. Funkcja abstrakcyjna może być również modyfikowana przez programistę, aby zmienić sposób, w jaki program obsługuje dane, aby zwiększyć ich wydajność. Informacje są oparte na klasach pochodnych, więc programy z pytaniami i złożonymi danymi wejściowymi dostosują dane zgodnie z danymi wejściowymi użytkownika, tak aby program przypadkowo nie wywołał innej sekcji niepotrzebnego kodu.