Jak używać odniesień do funkcji w C ++

Jak używać odniesień do funkcji w C ++
C ++ zapewnia różne metody przekazywania argumentów do funkcji, w tym wartości, według wskaźnika i odniesienia. Przekazywanie argumentów przez odniesienie pozwala funkcjom modyfikować wartości oryginalnych zmiennych, zamiast tylko pracować z kopiami. Odniesienia do funkcji zapewniają alternatywny sposób przekazywania argumentów przez odniesienie i mogą uprościć kod, eliminując potrzebę składni wskaźnika.

W tym artykule zbadano sposób korzystania Odniesienia do funkcji w C++, w tym składnia, przykład i zalety w C++.

Jakie są odniesienia do funkcji w C++

Deweloperzy mogą korzystać Odniesienia do funkcji w C ++, aby zapisać kod, który jest zarówno bardziej skuteczny, jak i ekspresyjny. Odniesienia do funkcji, W porównaniu z konwencjonalnymi wywołaniami funkcji, pozwól programistom wysłać całe funkcje jako parametry do innych funkcji. Ma to wiele zalet, w tym zwiększoną czytelność kodu, rozszerzoną swobodę projektowania funkcji i znaczący wzrost wydajności.

Kluczową cechą C ++ jest możliwość wysyłania funkcji jako parametrów do innych funkcji za pomocą Odniesienia do funkcji. Podczas pracy z dużymi i złożonymi aplikacjami może to być niezwykle pomocne, ponieważ promuje większą elastyczność i abstrakcję.

Jak używać odniesień do funkcji w C++

Podstawowa składnia do deklarowania Odniesienie do funkcji następująco:

Type i nazwa funkcji (parametry)

W tym przypadku, „Typ funkcji” odnosi się do rodzaju funkcji, którą chcemy wysłać jako argument, „Typ powrotu” odnosi się do rodzaju wartości Odniesienie do funkcji wraca i „Parametry” odnosi się do przekazanych argumentów.

Istnieją pewne podstawowe kroki w korzystaniu z Odniesienia do funkcji w c++. Utwórz funkcję, która najpierw akceptuje odniesienie funkcji jako argument. Każda funkcja pasująca do typu odniesienia musi być w stanie obsłużyć tę funkcję. Twoja funkcja musi być w stanie poradzić sobie z dowolną tego rodzaju funkcją.

#włączać
int add (int a, int b)
zwrócić A + B;

int subtract (int a, int b)
zwrócić a - b;

int main ()
int (*padd) (int, int) = add;
int (*psubtract) (int, int) = subtract;
STD :: Cout << "6 + 4 = " << pAdd(6, 4) << std::endl;
STD :: Cout << "8 - 2 = " << pSubtract(8, 2) << std::endl;
powrót 0;

W powyższym kodzie dwie funkcje dodają i odejmij obie akceptują dwa parametry liczb całkowitych i zwracają wartość całkowitą. Następnie definiujemy dwie zmienne odniesienia funkcji zwane Padd I psubtract, które są wskaźnikami do funkcji, które akceptują dwa argumenty całkowitowe i wyświetlają wartość całkowitą. Przy odpowiednio adresach funkcji dodawania i odejmowania inicjowania tych zmiennych zainicjujemy. Następnie możemy użyć funkcji zmiennych odniesienia Padd i PsubTract, aby pośrednio wywołać te funkcje.

Wyjście

Podczas używania Odniesienia do funkcji w C++, Powinieneś przestrzegać niektórych najlepszych praktyk. Przed cokolwiek innego ważne jest potwierdzenie, że wszelkie funkcje, które podajesz, są bezstanowe. Wskazuje to, że po prostu używają parametrów wejściowych, które zostały im dostarczone i nie zmieniają żadnego stanu zewnętrznego. To dlatego, że używanie Odniesienia do funkcji Zarządzać zmianami stanu zewnętrznego, może mieć nieoczekiwane wyniki, ponieważ nie były do ​​tego przeznaczone.

Podczas przekazywania funkcji jako argumentu do innej funkcji, na przykład przy użyciu algorytmu sortowania, który akceptuje funkcję porównawczą jako argument, Odniesienia do funkcji może być pomocne. Ponadto mogą być używane do wdrożenia funkcji wywołania zwrotnego, w których funkcja jest wywoływana, gdy ma miejsce określone zdarzenie.

Zalety korzystania z referencji funkcyjnych

1: Wydajny kod

Kiedy używasz Odniesienia do funkcji, Możesz także skorzystać z różnych funkcji C ++, które pomagają tworzyć kod, który jest czystszy i bardziej skuteczny. Na przykład możesz napisać niesamowicie potężny i wszechstronny kod, łącząc Odniesienia do funkcji z innymi funkcjami C ++, takimi jak iteratory, przeciążenie operatora i szablony.

2: Ulepszenia wydajności

Zdolność do znacznie zwiększenia wydajności jest być może największą zaletą Odniesienia do funkcji. A Odniesienie do funkcji jest wskaźnikiem funkcji, gdy jest ona przekazywana. W ten sposób możesz zaoszczędzić miejsce, nie tworząc kopii funkcji za każdym razem, gdy jest ona wywoływana. Może to być niezwykle ważne w radzeniu sobie z czasochłonnymi, skomplikowanymi lub na dużą skalę funkcji.

3: Przekazuj funkcje jako argumenty

Możliwość zapewnienia funkcji jako parametrów dla innych funkcji jest jedną z kluczowych korzyści używania Odniesienia do funkcji. Możesz zacząć dostarczać Odniesienia do funkcji jak argumenty po skonfigurowaniu funkcji. Po prostu przekaż odniesienie do odpowiedniej funkcji podczas wywoływania funkcji. Można to zrobić, jawnie nazywając funkcję lub za pomocą funkcji Lambda. Ten ostatni jest szczególnie pomocny, gdy trzeba przejść funkcję nienazwaną lub wbudowaną.

Wniosek

Dla programistów próbujących zbudować bardziej skuteczny i ekspresyjny kod, Odniesienia do funkcji W C ++ są niezbędne. Możesz zwiększyć elastyczność w projektowaniu funkcji, zwiększyć czytelność kodu i osiągnąć znaczące zalety wydajności, przekazując Odniesienia do funkcji jako parametry. Możesz zacząć używać Odniesienia do funkcji w twoim kodzie C ++ i zysku ze wszystkich ich zalet z niewielką praktyką.