CREF C ++

CREF C ++

C ++ to język wysokiego programowania, który jest najczęściej używany do rozwoju gier i rozwoju systemu operacyjnego. Zapewnia niektóre przydatne wbudowane funkcje, które znacznie ułatwiają programowanie w C ++. Te wbudowane funkcje pozwalają z łatwością budować dowolną prostą lub złożoną aplikację. Użytkownik może wykonywać ogromne funkcje, włączając wbudowaną funkcję w programie. Ten artykuł pomoże Ci poznać działanie wbudowanej funkcji Cref ()++. Tutaj zdefiniujemy funkcję CREF () i pomożemy zrozumieć jego działanie, pokazując kilka przydatnych przykładów.

Co to jest funkcja Cref () C ++?

CREF () to wbudowana funkcja języka programowania C ++ podana w standardowej bibliotece referencyjnej. Jest to funkcja pomocnicza, która wykorzystuje dedukcję argumentu szablonu do generowania obiektu referencyjnego typu_wrapper przy jednoczesnym określeniu argumentu szablonu wyniku.

Krótko mówiąc, funkcja Cref () służy do utworzenia opakowania referencyjnego. Opakowanie referencyjne jest metodą przekazania odniesienia argumentu do funkcji zamiast wartości rzeczywistej. Gdy kontrola znajduje się w funkcji, odniesienie parametru jest używane do dostępu do wartości rzeczywistej, nie wprowadzając żadnych zmian w wartości pierwotnej, ale do wartości odniesienia. Jest to przydatne, gdy użytkownik nie chce modyfikować pierwotnej wartości, ale musi używać ich do dalszych obliczeń.

Składnia funkcji Cref () C ++:

Właściwa składnia funkcji Cref () jest następująca:

Funkcja Cref () bierze jeden argument jako wejście, które należy owinąć i zwraca obiekt opakowania referencyjnego, aby utrzymać element „parametru stałego”. Teraz zbadajmy kilka przykładów, aby lepiej zrozumieć funkcję Cref (). Postępując zgodnie z podanymi przydatnymi przykładami, możesz nauczyć się wdrażać funkcję CREF () w swoich programach i opracowywać dobre aplikacje.

Przykład 1:

Ten pierwszy przykład artykułu CREF () określa podstawowe zastosowanie funkcji Cref () w języku programowania C ++. Zobacz następujący kod i zrozum działanie każdego wiersza krok po kroku.

Pierwszy wiersz zawiera bibliotekę „iostream” w programie, aby program mógł użyć standardowej funkcji wyjściowej wejściowej języka programowania C ++. Standardowa biblioteka „iostream” pozwala korzystać z CIN, Cout i innych funkcji, aby Twój program był użyteczny. „Funkcjonalny” plik nagłówka jest częścią standardowej biblioteki dostarczonej przez język programowania C ++. Oferuje predefiniowany zestaw szablonów klas do wykonywania kilku funkcji. Obejmuje tworzenie logiki, przeprowadzanie porównań, różnych operacji arytmetycznych itp. Program rozpoczyna się od funkcji Main (). Kompletny kod jest zapisywany w funkcji Main ().

Pierwszy wiersz kodu w funkcji Main () to „int ref (9)”. Wywołuje funkcję „ref” i przekazuje „9” jako parametr do funkcji „Ref”. Następnie „auto ren = std :: cref (ref);” definiuje. Ta linia tworzy opakowanie referencyjne „Ref”. „Ref ++” dodaje 1 w danym parametrze, który wynosi 9. Tak więc „ref ++” staje się 10. Obliczona wartość jest przekazywana do instrukcji Cout, aby można ją było wydrukować. Instrukcja return 0 zapewnia pomyślnie zwracane dane wyjściowe. Jeśli wystąpi pewien błąd, zwrot 0 podnosi wyjątek.

Aby skompilować i wykonać program, musisz nacisnąć „kompila i uruchom” na pasku zadań. Lub możesz po prostu nacisnąć klawisz funkcyjny „F11” na klawiaturze. Sprawdź podane dane wyjściowe w następujący sposób:

Jak widać, wyjście to 10, co dokładnie obliczyliśmy ręcznie.

Przykład 2:

Ten przykład pokazuje wyjątek podniesiony przez kompilator, gdy użytkownik chce wprowadzić bezpośrednie zmiany w oryginalnej wartości odniesienia. Możesz znaleźć kod do zrozumienia na poniższej ilustracji.

Funkcja używa tych samych bibliotek, jak w poprzednim przykładzie. Funkcja „void f (const int & n)” jest zdefiniowana na początku programu. Pobiera dane wejściowe z głównej funkcji i próbuje ją manipulować. Instrukcja Cout drukuje wartość, gdy kontrola jest w funkcji.

Instrukcja „N ++” przyrostowa n z 1. W głównej funkcji „N” jest inicjowany z 1. „Std :: Function Bound_F = std :: bind (f, std :: cref (n));” Instrukcja służy do związania funkcji „F” z wartością opakowania odniesienia. Dwa instrukcje Cout są używane do drukowania wartości, gdy kontrola jest w głównej funkcji. Pierwsza instrukcja Cout drukuje wartość przed wywołaniem funkcji dziecka. Druga instrukcja Cout drukuje wartość po wywołaniu funkcji dziecka.

Naciśnij „F11” w klawiszach funkcyjnych lub ikonach kompilacji na pasku zadań, aby wykonać program.

Oto wyjście wyprodukowane przez program:

Po wykonaniu tego kodu otrzymasz błąd „Przyrost referencji tylko do odczytu„ n ”. Dzieje się tak, ponieważ przekazaliśmy opakowanie referencyjne do funkcji „const int & n”. „Const” nie pozwala na wprowadzenie zmian w parametrze opakowania. Stąd rodzi błąd.

Przykład 3:

Następnym przykładem jest nieco bardziej złożona wersja pierwszego przykładu. Tutaj definiujemy trzy zmienne i przekazujemy je do funkcji dziecka, inaczej, inaczej. Pierwszy argument jest przekazywany po prostu bez tworzenia opakowania referencyjnego. Jednak pozostałe dwa liczby wejściowe są dostarczane po utworzeniu opakowania referencyjnego. Patrz następujący podany kod:

Reszta programu jest taka sama jak w drugim przykładzie. Jedyną różnicą jest to, że zapewniamy trzy wejścia i nie stajemy żadnej stałej wejściowej. Funkcja wiązania wiąże funkcję dziecka z parametrami wejściowymi. Dane wyjściowe po wykonaniu programu jest następujące:

Zauważ, że wartości przed wywołaniem funkcji dziecka i gdy kontrola jest w funkcji dziecka, są takie same. Jednak gdy kontrola powraca do głównej funkcji, wszystkie wartości wejściowe są zwiększane o 1. Dzieje się tak, ponieważ przyrost danych wejściowych jest obliczany w funkcji dziecka i powraca do głównej funkcji.

Wniosek

W tym przewodniku dowiadujemy się o funkcji Cref () języka programowania C ++. Funkcja Cref () służy do obliczenia opakowania odniesienia podanego wejścia. Za pomocą przykładów nauczyliśmy się, jak wdrożyć funkcję CREF () w programie C ++.