C ++ stdforward

C ++ stdforward
Jedna z niezbędnych funkcji C ++, funkcja do przodu (), zostanie omówiona w dzisiejszej lekcji. Aby upewnić się, że każdy aspekt funkcji jest jasno zrozumiany, użyjemy również kilku przykładów. Ale najpierw szybko przejrzyjmy język programowania C ++, podstawy funkcji i logikę za implementację funkcji Forward ().

Podstawa języka programowania C ++ opiera się na koncepcjach programowania obiektowego (OOP). Użytkownik może łatwo budować i zrozumieć zasady programu, ponieważ C ++ ma odpowiednią strukturę. Ponadto, ponieważ funkcje są zwięzłymi elementami kodu, zasada została wyjaśniona w C ++, dzięki.

Wstęp

W języku C ++ funkcja Forward () działa podobnie do funkcji Move (. W funkcji Forward () akceptuje wartość przekazywania jako wartość wejściową, a następnie określa, czy LVALE lub RVALUE, do którego odwołuje się do wartości wejściowej. I w zamian, czy da on odpowiedni rodzaj odniesień z argumentem szablonu T, czy nie. Funkcja do przodu () służy do doskonałego przekazywania. Gdy odniesienie RValue jest przypisywane do zmiennej Ref, Ref Sernce staje się nazwą. Mimo że Ref jest odniesieniem RVALUE, należy do kategorii LVALUE. W rezultacie kopiowanie semantyki zamiast przenoszenia semantyki są stosowane do referencji.

Składnia

Funkcja LVALUE () jest szablonem lewej wartości w funkcji do przodu () i jest predefiniowanym słowem kluczowym w języku C ++, które służy do rozpoczęcia szablonu klasy. Następnie następuje dowolne parametry szablonu, które są zawarte w A i deklaracji klasowej. Parametr szablonu „t” i słowo kluczowe „klasa” to symbole zastępcze dla typów danych używanych w deklaracji. Przekażemy ten parametr „t” i wywołamy funkcję do przodu () i przekazamy w niej typ i argument. Funkcja szablonu remove_reference () jest częścią standardowej biblioteki C ++. Funkcja rValue () jest właściwym szablonem wartości w funkcji do przodu (). Zmienna ref zmienia się w nazwany obiekt, gdy zastosowano do niego odniesienie RValue. Nawet jeśli sędzia jest odniesieniem do RValue, należy do klasy LValue.

Parametry:

Arg: jest argumentem wejściowym i służy do przekazywania funkcji do przodu ().

Wartość zwracana:

W zamian otrzymamy odniesienie RVALUE (właściwa wartość), jeśli nie otrzymamy odniesienia LVALUE (lewej wartości).

Przykład 01:

Teraz zacznijmy wdrażać nasz pierwszy przykład jednej z funkcji, która jest funkcją przekazywania () w języku C ++. Aby rozpocząć pisanie kodu, który chcemy wdrożyć w języku programowania C ++, zawsze najpierw potrzebujemy kompilatora, w którym piszemy kod i wykonujemy kod. W tym celu możesz zainstalować dowolny kompilator języka C ++, a także możesz użyć kompilatora online do pisania i wykonania kodu, jeśli jest kompatybilny z bibliotekami, których zamierzasz użyć w programie.

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

Po otwarciu kompilatora C ++, teraz możesz zacząć pisać kod. W programach C ++ zawsze musimy dołączyć pliki nagłówkowe w programie, abyśmy mogli łatwo wywołać funkcję, której zamierzamy użyć w programie w dowolnym miejscu. Te biblioteki są wbudowanymi bibliotekami języka programowania C ++. Po prostu musimy napisać tylko jedną wiersz kodu, aby uwzględnić te biblioteki. Pierwszą biblioteką, którą zawsze uwzględniamy w programie C ++, jest biblioteka „IOSTEAM”, która służy do uzyskania danych wejściowych od użytkownika, a także możemy wyświetlać dane za pośrednictwem biblioteki „IOSTEAM”. Aby zadzwonić do biblioteki, najpierw piszemy symbol „#”, który powie kompilator, że zamierzamy uzyskać dostęp do biblioteki. Następnie napiszemy słowo kluczowe „dołącz”, które jest wstępnie zdefiniowanym słowem kluczowym, które instruuje kompilator, który dołączamy do biblioteki. W symbolu napiszemy nazwę biblioteki, którą importujemy do programu, który jest iostream ”.

Uwzględnimy drugą wbudowaną bibliotekę programu, którego używamy, jest „użyteczność”. Biblioteka „narzędzia” służy do definiowania niektórych szablonów używanych często w standardowej bibliotece szablonów (STL) w całym istniejącym programie. Ponadto używaliśmy reguły „Używając przestrzeni nazw”, aby zapobiec udostępnianiu tej samej domeny przez obiekty, metody i parametry.

void przeciążony (int const & a)

Cout<< "[lvalue]";

void przeciążony (int && a)

Cout<< "[rvalue]";

szablon
T naprzód (t && a)

przeciążony (a);
przeciążony (naprzód (a));

Wdrożyliśmy funkcję globalną, która jest jedną z pojedynczych metod obiektowych, w których zadeklarowaliśmy funkcję poza funkcją Main (), a następnie po prostu wywołujemy funkcję w funkcji Main ( Zdobądź żądaną moc wyjściową. Najpierw napiszemy typ danych funkcji, którą wdrażamy, która jest „pustka”, co oznacza, że ​​funkcja nie zwraca żadnej wartości.

Następnie napiszemy nazwę funkcji, którą zamierzamy zaimplementować funkcję „przeciąża ()”, i przekazamy w niej parametr. W funkcji przeciążania () wydrukowaliśmy komunikat B za pomocą metody Cout (). Funkcja przeciążona () oznacza, że ​​możesz podać wiele funkcji o tej samej nazwie w tej samej przestrzeni nazw. Dzięki przeciążonym funkcjom możesz podać metodę wiele semantyków w oparciu o typy i ilości jej parametrów. Jak widać, zaimplementowaliśmy jeszcze jedną funkcję o tej samej nazwie „przeciążonej” w tym samym program.

Następnie zaimplementowaliśmy funkcję predefiniowaną sztabel () w programie, abyśmy mogli zwrócić wynik dowolnego typu danych. I nazwaliśmy w niej funkcję przeciążoną (). Jak widziałeś, funkcja przeciążona () to typ „int”, dlatego dlatego zaimplementowaliśmy funkcję szablonu (), jeśli wprowadzimy wartość dowolnego typu, aby kompilator nie generuje żadnego błędu w programie.

Następnie uruchomimy funkcję Main (), w której zadeklarujemy zmienną i dostęp do powyższych funkcji globalnych tutaj. Najpierw zadeklarowaliśmy dwie zmienne typu int i przypisaliśmy im wartość. Zadeklarowaliśmy inną zmienną typu „Int” i przechowyliśmy wyrażenie dodawania w „RES”. Następnie wydrukowaliśmy zmienną „RES”, a także przeszliśmy zmienną „RES” w funkcji Forward (), aby uzyskać LVALUE iw następnym wywołaniu funkcji do przodu (.

int main ()
int a = 30, b = 23;
int res = a+b;
Cout<< res << " is a: ";
naprzód (res);
Cout<Cout<naprzód (a+b);
Cout<powrót 0;

A na końcu funkcji main () zwrócimy 0 do funkcji Main (.

Wniosek

W tym artykule dowiedzieliśmy się o funkcji Forward (), która jest wbudowaną funkcją języka programowania C ++. Dowiedzieliśmy się również o tym, czym jest przeciążenie, a także o funkcji szablonu () języka C ++. Zaimplementowaliśmy przykład funkcji Forward () i użyliśmy w niej funkcji matrycy ().