Ratkaistu: static_cast

Viimeisin päivitys: 09/11/2023
Kirjoittaja: C SourceTrail

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(on);
int d = staattinen_lähetys(b);
}

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.

Related viestiä: