arunca
De la SEO Wiki - Search Engine Optimization și Limbaje de Programare
Aducerea tip (tip de conversie) - valoare de transformare a unei variabile de un tip la o altă valoare de tip. Alocați conversii de tip implicite și explicite.
- Când specificați în mod explicit tipul de acționare a variabilei pe care doriți să transforme variabila originală.
- Atunci când ia de conversie de conversie implicită loc în mod automat, în conformitate cu normele stabilite în acest limbaj de programare.
- De asemenea, în limba de funcții speciale pentru a conduce poate fi setat
tipul implicit
aducătoare Inutil apare atât în timpul atribuirii de variabile, și în operații de comparație, evaluarea expresiei. Atunci când este utilizat în expresia mai multor tipuri diferite de valori ale unuia sau mai multor subtipuri de conversie poate fi efectuată într-un tip mai frecvente (supratipul), cu o gamă largă de valori posibile.
De fiecare dată când operațiunea efectuează comparația sau atribuirea diferitelor tipuri de variabile se va acorda un singur tip. Ar trebui să fie utilizat cu precauție de tip implicită. Când se va traduce numărul de tip real, la un întreg, partea fracționară a pliurilor. acționare inversă a întreg la real poate duce, de asemenea, la o scădere a preciziei datorită diverselor reprezentări de numere reale și întregi la nivelul mașinii. De exemplu, un tip real, unic IEEE 754 poate să nu reprezinte cu exactitate numărul 16777217, în timp ce tipul întreg pe 32 de biți poate. Acest lucru poate duce la situații în care o comparație pentru egalitatea de același număr reprezentat tipuri (int si single) va da un rezultat fals (numere nu sunt egale între ele).
tip explicit
Pentru o distribuție explicită la o variabilă înainte de a fi indicate în paranteze nou nume de tip, de exemplu:
int X; int Y = 200; char C = 30; X = (int) C * 10 + Y; // variabila C se reduce la tipul int.
Dacă în acest exemplu ar fi tipul explicit nu a fost executată, compilatorul sugerat că expresia C * 10 + Y variabila X este setat pentru a fi 640, dar nu corect 3200. Ca rezultat al variabilei de tip acționare C este recunoscut de compilator ca 16 biți și eroarea descrisă mai sus nu apare.
In C ++,
În C ++, există patru tipuri de turnat. Toate cele patru tipuri sunt scrise ca
Cuvintele cheie voluminoși un memento pentru programator că distribuția este plină de probleme.
static_cast- Scop: typecast de regulile obișnuite, compilatorul refuză să-l aducă în mod automat (diferite de cele din C (type_to) expression_from numai că indicatorul nu funcționează, utilizat reinterpret_cast pentru indicii). Aceasta se aplică:
- pentru tipul numeric;
- pentru indicii și referințe la conversia la tipul părinte;
- pentru constructori de tip sau operațiuni de conversie, cum ar fi type_to operatorului;
- un șablon - chiar și la specializarea șablon compilator decide ce operație de utilizat;
- în cadrul operațiunii. a cărui apoi - și ceilalți -Partea trebuie să aibă același tip.
- Restricții privind expression_from. nr.
- Restricții privind type_to. trebuie să existe o modalitate de a converti type_to.
- dacă codul produce: în general, da.
- Erorile posibile: relativ sigure. Erori logice sunt posibile, dacă este pus în tipul greșit sau chiar dor de o fantomă, atunci când este necesar. Este posibil ca va exista un obiect temporar după conversie. care vor fi distruse în condiții de siguranță, împreună cu toate modificările.
- Scop: Teren de stocare este privit ca un obiect de alt tip.
- Restricții privind expression_from. tip integral (bool, char, tipuri intregi) pointer.
- Restricții privind type_to. tip integral (bool, char, tipuri intregi) pointer.
- dacă codul produce nr.
- Posibile erori: Teren în realitate, nu poate fi de acest tip. Nu există nici o modalitate de a verifica, întreaga responsabilitate pentru corectitudinea programator de conversie preia.