Static_cast C ++

Static_cast C ++
W tym artykule będziemy omawiać koncepcję statycznej obsady w języku programowania C ++. Na początek tej koncepcji musimy wiedzieć o koncepcji castingu i jego typu. Krótko mówiąc, odlewanie zmienia typ danych zmiennej na inną. Istnieją dwa rodzaje odlewów w języku programowania C ++, jeden jest domniemany odlew, a drugi to jawne casting.

Wpisz odlewanie w C ++:

W języku programowania C ++ istnieją dwie formy odlewu lub konwersji typu, które są:

  1. Casting typu niejawnego.
  2. Casting typu jawnego.
  3. Casting typu niejawnego:

Odlew niejawnego jest również nazywany automatyczną konwersją typu. Odbywa się to przez kompilator w kompilacji rzeczywistego czasu działania i nie wymaga żadnych danych wejściowych ani akcji od użytkownika. Ten rodzaj odlewania ma miejsce, gdy w wyrażeniu występują dwa typy typów danych. Na przykład:

int k = 8;
char alph = „u”;
k = k + alph;

To doskonały przykład niejawnej lub zautomatyzowanej konwersji typu. Kompilator automatycznie przekształca typ danych zmiennej znaków w typ danych liczb całkowity.

Casting typu jawnego:

Jawny typ rzucania lub konwersji typu nie jest automatyczną konwersją typu; Użytkownik musi to zrobić w kodzie, aby przekonwertować typ danych zmiennej na typ danych innej zmiennej. Tak więc jawne konwersja typu lub konwersji typu odbywa się zwykle, gdy do przechowywania wszelkich informacji używany jest typ danych mniejszych zamówień; Należy go jednak przekształcić w wyższy typ danych, aby zapobiec utratę danych i przechowywać więcej danych. Konwersja przez przypisanie odbywa się w wyrażeniu w kodzie, a sposób napisania tego wyrażenia pokazano poniżej:

# (typ danych) wyrażenie

Teraz przyjrzymy się różnym rodzajom konwersji, które mogą wykonać operatorzy odlewów w języku programowania C ++. Operatorzy odlewu, znani również jako nierzycy operatorzy, zmuszają typ danych zmiennej do przejścia z jednego typu do drugiego. Operatorzy odlewów mogą robić cztery różne typy odlewów: statyczna obsada, dynamiczna obsada, reżyser.

Operator odlewów statycznych w C ++:

Odlew statyczny jest zwykle używany, gdy musimy przekonwertować zmienną enum na zmienne typu liczbowego lub podwójnego typu danych w języku programowania C ++. Jest również używany, gdy musimy zmienić zmienną wskaźnika z klasy podstawowej na wskaźnik w klasie pochodnej.

W metodzie odlewu statycznego nie ma kontroli w czasie wykonywania programu odlewu typu w porównaniu z dynamicznym odlewem typu. Składnia używana do wykonywania statycznej konwersji obsady w języku programowania C ++ jest napisana poniżej:

# static_cast (obiekt);

W powyższym wyrażeniu piszemy typ danych, w którym chcemy przekonwertować naszą zmienną między nawiasami kątowymi, a w okrągłym nawiasie piszemy nazwę zmiennej lub nazwę wskaźnika, który typ danych należy przekonwertować.

Konwersja typu danych zmiennej zmiennej w liczbę całkowitą przy użyciu statycznej metody rzutu w Ubuntu 20.04:

W programie C ++ czasami stajemy w obliczu sytuacji, w której musimy wyraźnie zmienić zmienny typ danych, więc musimy użyć metody statycznej odlewu. Aby wdrożyć tę koncepcję w Ubuntu 20.04, otwórz terminal, przejdź do katalogu komputerowego, pisząc „CD Desktop”, a następnie zrób .plik CPP poprzez wykonanie polecenia „dotyk” z nazwą pliku i rozszerzeniem .CPP. Następnie zlokalizuj i otwórz .plik CPP na komputerze

Dodaliśmy bibliotekę iostream do wykonywania operacji wejściowych i wyjściowych. Następnie stwierdziliśmy przestrzeń nazwową. Następnie rozpoczęliśmy naszą główną funkcję z typem danych liczb całkowitych. W naszej głównej funkcji mamy zmienną „F” z typem danych zmiennoprzecinkowych i przypisujemy wartość „3.5 ”do tego. Następnie mamy inną zmienną „B” z typem danych liczb całkowitych. I przekazał statyczne odlew do wartości zmiennej „F”. Następnie wydrukowaliśmy zmienną „B” za pomocą Cout.

Powyższy kod musi zostać zapisany; Kliknij przycisk Zapisz przydzielony na górnym pasku nawigacji pliku. Następnie przejdź do terminala ponownie, skompiluj plik, a następnie wykonaj go, jeśli nie ma błędów, używając odpowiednio następujących poleceń „Nazwa pliku G ++” z rozszerzeniem pliku, które wynosi „.CPP ”i„./”Do wykonania czytelnej nazwy pliku, która ma„.na zewnątrz ”jako jego rozszerzenie.

Jak widać w powyższym wyniku, pomyślnie przekonwertowaliśmy zmienną zmiennoprzecinkową na zmienną typu danych liczb całkowitych. Wyjście pokazuje, że tylko liczba jest zmienną całkowitą przed wydrukowaniem punktu dziesiętnego. Możemy również wymieniać typ danych od siebie, ponieważ zmienna zmiennoprzecinka do konwersji na liczbę całkowitą będzie odwrotnie, w której przekonwertujemy zmienną całkowitą na zmienną typu danych pływakowych.

Konwersja typu danych zmiennej liczby całkowitych w Float przy użyciu metody statycznej CAST:

Teraz będziemy odwrócić konwersję, którą wykonaliśmy w powyższym przykładzie; Będziemy postępować zgodnie z podobnymi krokami z poprzedniego przykładu, jak pokazano poniżej:

W powyższym kodzie zainicjowaliśmy zmienną całkowitą „i” i przypisaliśmy wartość „4”. Następnie mamy inną zmienną „A” z typem danych zmiennoprzecinkowych, a następnie przekonwertowaliśmy jego typ danych na float, a następnie wydrukowaliśmy go w wyjściu, używając instrukcji Cout. Po skompilowaniu i wykonaniu powyższego kodu wyjście zostanie wyświetlone jako:

Przekształciliśmy zmienną liczb całkowitą na zmienną zmiennoprzecinkową, ponieważ kompilator nie pokazuje błędu. Jednak nadal istnieje pewna utrata danych, ponieważ liczba całkowita jest typem danych niższego rzędu, podczas gdy typ danych pływakowych jest wyższy.

Wykorzystanie statycznej obsady do podzielenia dwóch liczb całkowitych bez utraty danych:

W tym przykładzie będziemy dzielić dwie liczby całkowite, przekształcając je na zmienną zmiennoprzecinkową, aby zapisać dane, których liczba całkowita. Aby to zrobić, wykonamy następujący kod, w którym będziemy inicjować dwie liczby całkowite o nazwie „I” i „K” o wartości „41” i „2”. Następnie mamy inną zmienną z typem danych zmiennoprzecinkową zatytułowaną jako „a” i konwertuj na zmienną zmiennoprzecinkową i podziel ją przez drugą zmienną liczbową. Następnie, aby wyświetlić wyjście na ekranie, użyliśmy instrukcji Cout.

Po skompilowaniu kodu w powyższym przykładzie i wykonaniu go otrzymamy następujące dane wyjściowe:

Powyższe wyjście wyjaśnia, że ​​podzieliliśmy zmienną liczbową. Mimo to, przed podzieleniem, przekonwertowaliśmy zmienną całkowitą na typ danych pływakowych i wykorzystaliśmy statyczny operator odlewu w wyrażeniu, aby go również podzielić. Wynik pokazuje liczbę z punktem dziesiętnym, ponieważ jest teraz zmienną pływową i może przechowywać liczby po przecinku.

Wniosek:

W tym artykule dowiedzieliśmy się o mechanizmie rzucania typu w języku programowania C ++. Zbadano również wiele rodzajów odlewań, koncentrując się na tym, dlaczego wykorzystujemy takie metody w programowaniu C ++. Wdrożyliśmy również koncepcję odlewania statycznego za pomocą statycznego operatora odlewu w wyrażeniu w języku programowania C ++ w Ubuntu 20.04 Środowisko.