type casting
Főnév
type casting (tsz. type castings)
- (informatika) A type casting (típus átalakítás) C++-ban egy olyan művelet, amellyel egy változó értékét egyik adattípusból a másikba alakítjuk át. A típus átalakítás különböző helyzetekben lehet hasznos, például amikor egy típusnak megfelelő értéket szeretnénk más típusba konvertálni, hogy a műveletek helyesek legyenek.
C++-ban két fő típusa van a típus átalakításnak:
1. Implicit Típus Átalakítás (Automatikus típus átalakítás)
Ez akkor történik, amikor a C++ automatikusan átalakítja az egyik típusú változót egy másik típusra, ha a konverzió biztonságos. Például, ha egy int típusú változót egy float típusú változóba rendelsz, a C++ automatikusan elvégzi az átalakítást.
Példa:
#include <iostream>
using namespace std;
int main() {
int num = 10;
float result = num; // Implicit típus átalakítás, int-ről float-ra
cout << "Eredmény: " << result << endl;
return 0;
}
Ebben az esetben az int típusú num változó automatikusan float típusúvá alakul, mivel a float szélesebb adattípus, és képes tárolni az int értékét.
2. Explicit Típus Átalakítás (Type Casting)
Ez akkor történik, amikor a programozó explicit módon kér egy típus átalakítást a kódban. C++-ban kétféle módja van az explicit típus átalakításnak: C-stílusú típus átalakítás és C++-os típus átalakítás.
a. C-stílusú típus átalakítás
Ez a legegyszerűbb forma, és az alábbi módon történik:
float num = 10.5;
int result = (int)num; // C-stílusú típus átalakítás: float-ról int-re
Ebben az esetben a float típusú num értékét int típusúvá alakítjuk, és az érték törtrészét elveszítjük (lefelé kerekítjük).
b. C++-os típus átalakítás (static_cast)
A C++ nyújt egy erősebb típusú átalakítást is, a static_cast-ot, amely sokkal biztonságosabb, mint a C-stílusú típus átalakítás.
Példa:
float num = 10.5;
int result = static_cast<int>(num); // C++ típus átalakítás
Ez a típus átalakítás is ugyanazt az eredményt adja, mint a C-stílusú típus átalakítás, de sokkal világosabb és biztonságosabb, mert a C++ ellenőrzi, hogy az átalakítás érvényes-e, és megfelelő hibákat adhat, ha nem.
3. Típus átalakítási problémák
Bár a típus átalakítás hasznos lehet, fontos figyelni a következőkre: - Adatvesztés: Ha egy nagyobb adattípusról (pl. float) kisebbre (pl. int) konvertálunk, akkor adatvesztés (pl. tizedesjegyek elvesztése) történhet. - Nem kompatibilis típusok: Ha nem kompatibilis típusokat próbálunk átalakítani (pl. karakterláncot számra), az hibát okozhat.
Példa problémával:
#include <iostream>
using namespace std;
int main() {
float num = 9.75;
int result = (int)num; // A tizedesjegyek elvesznek
cout << "Az eredmény: " << result << endl; // Kimenet: 9
return 0;
}
Itt a float típusú num értékét int-re alakítjuk, és a tizedesjegyek (0.75) elvesznek.
- type casting - Szótár.net (en-hu)
- type casting - Sztaki (en-hu)
- type casting - Merriam–Webster
- type casting - Cambridge
- type casting - WordNet
- type casting - Яндекс (en-ru)
- type casting - Google (en-hu)
- type casting - Wikidata
- type casting - Wikipédia (angol)