Toki, tästä se lähtee:
C++-ohjelmoinnin maailmassa joudut usein muuntamaan tyyppejä. Muunnos voi tapahtua yksinkertaisesta tietotyypistä monimutkaiseen tyyppiin, johdetusta luokasta perusluokkaan tai mistä tahansa tietystä tyypistä mihin tahansa muuhun tyyppiin. C++ tarjoaa neljä suoratoistomekanismia näiden muunnosten suorittamiseen: "static_cast", "dynamic_cast", "reinterpret_cast" ja C++-tyylinen suoratoisto. Tässä artikkelissa käsittelemme "static_cast" yksityiskohtaisesti.
C++:ssa, `staattinen_lähetys` on käännösajan cast-operaattori. Sitä käytetään pääasiassa numeeristen tietotyyppien muuntamiseen, kuten "double" muuntamiseen "int" tai "int" "float" jne. Sen käyttö ei kuitenkaan rajoitu vain numeeristen tietotyyppien muuntamiseen.
[h2] Static Cast [/h2]
Static_cast-arvon syntaksi on seuraava:
static_cast < uusi_tyyppi > ( lauseke )
Täällä uusi_tyyppi on tyyppi, johon haluat muuntaa lausekkeen. Lauseke voi sisältää muuttujia, literaaleja tai vakioita.
Tarkastellaan vaiheittaista selitystä static_castin toiminnasta.
Ensinnäkin meidän on sisällytettävä kirjastot koodiimme.
#sisältää
Sitten pääfunktiossamme julistetaan kokonaislukumuuttuja 'a' ja annetaan sille arvo 7. Seuraavaksi julistetaan kelluva muuttuja 'b' yhtä suureksi kuin 22.0.
int main () {
int a = 7;
kelluke b = 22.0;
}
Seuraavaksi käytämme parametria `static_cast` näiden muuttujien muuntamiseen toiseksi tyypiksi.
int main () {
...
float c = static_cast
int d = staattinen_lähetys
}
Tässä integer-tyypin muuttuja 'a' on muutettu kelluvaksi ja määritetty muuttujaksi 'c'. Samoin float-tyyppinen muuttuja 'b' on muunnettu kokonaisluvuksi ja osoitettu muuttujalle 'd'. Static_cast-operaattori suorittaa tämän muunnoksen käännöshetkellä.
[h2] Static_castin varotoimet [/h2]
Vaikka "static_cast" voi tuntua tehokkaalta työkalulta, ohjelmoijien on oltava varovaisia käyttäessään sitä tyyppimuunnoksiin. Tähän on kaksi tärkeintä syytä:
- "static_cast" ei suorita ajonaikaista tyypin tarkistusta. Tämä tarkoittaa, että jos yrität muuntaa yhteensopimatonta tyyppiä, se ei aiheuta virhettä.
- Static_cast-parametrin käyttäminen perusluokan osoittimen tai viittauksen muuntamiseen johdetuksi luokkaosoittimeksi tai viittaukseksi varmistamatta, että perusluokkaobjekti on johdetun luokan täydellinen objekti, voi johtaa virheellisiin tuloksiin.
Yhteenvetona voidaan todeta, että "static_cast" on yksi C++:n tarjoamista valuoperaattoreista, jota käytetään enimmäkseen numeeristen tietotyyppien muuntamiseen. On kuitenkin oltava varovainen, ettei sitä käytä väärin, koska se voi johtaa ei-toivottuihin tuloksiin. Pitämällä nämä kohdat mielessä voit käyttää `static_cast` tehokkaasti C++-ohjelmassasi.