Datatype Konvertering i C ++:
Type støping er prosedyren for å endre datatypen til en annen datatype. Det er to typer casting eller typekonvertering i programmeringsspråket C ++. Automatisert type konvertering er et annet navn for implisitt typecasting. Det utføres av kompilatoren under sanntids sammenstilling og trenger ingen brukerinngang eller handling. Når det er to slags datatyper i et uttrykk, oppstår denne formen for støping. For eksempel:
I den gitte koden kan vi se at en heltallvariabel og en tegnvariabel er satt inn i det siste linjeuttrykket, og verdien av heltallvariabelen “I” endres. ASCII -nummerekvivalentet til “A” vil bli konvertert til en karakterverdi og lagt til heltallverdien til variabelen “I” i denne uttalelsen. Hvis verdien av variabelen “I” skrives ut, vil resultatet være totalt begge disse verdiene. Kompilatoren transformerer automatisk karaktervariabelenes datatype til en heltalldatatype ved å konvertere den til ASCII -standardverdien til alfabetet til høyre, noe som er et flott eksempel på implisitt eller automatisert type konvertering på kjøretid.
Når det gjelder eksplisitt støping eller konvertering av type, er det ikke en automatisert prosess; Brukeren må konvertere en datatype av en variabel manuelt til en annen type variabel i koden. Datatypene er vanligvis ordnet i et hierarki basert på minneområdet og mengden informasjon de kan holde. Så når en datatype med lavere orden brukes til å lagre all informasjon, men må omdannes til en datatype av høyere orden, slik at informasjonstap kan minimeres og mer og mer informasjon kan lagres, er eksplisitt støping eller type konvertering ofte er Ferdig. For eksempel, fordi en variabel heltallstype ikke kan lagre verdier etter desimalpunktet, kan vi miste litt informasjon hvis vi fortsetter å bruke heltallvariabler. For å unngå dette tapet, konverterer vi heltallvariabelen til en float -variabel, lagrer verdier etter desimalpunkter og forhindrer tap av informasjon. Den eksplisitte typen konvertering på C ++ programmeringsspråket kan oppnås på en av to måter: via tildeling eller ved å bruke rollebesetningsoperatøren. Oppgavekonvertering gjøres i et kodeuttrykk, og syntaks for dette uttrykket er gitt nedenfor.
# “(Datatype) uttrykk”I koden ovenfor må vi legge en gyldig datatype innen braketten, og etter braketten må vi skrive variabelen eller uttrykket som vi ønsker å endre inn i datatypen som er skrevet inne i braketten.
Nå vil vi se på hvilken type konvertering som er gjort av de rollebesetningene på C ++ programmeringsspråket. Rollebesetninger kalles også Unary -operatører som tvinger en variabel til å endre datatypen fra en som eksisterer til en annen. Det er fire typer casting cast-operatører: statisk rollebesetning, dynamisk rollebesetning, const cast og tolket cast på nytt.
Dynamisk støping i C ++:
Dynamisk støping i programmeringsspråket C ++ er basert på et konsept kalt RTTI (identifikasjon av kjøretid). RTTI er en funksjon som er til stede på flere programmeringsspråk som C/C ++, ADA og Object Pascal. Identifikasjon eller informasjon av kjøretidstype er en funksjon som identifiserer og trekker ut informasjonen om detaljene i et objekts datatype på kjøretid for et program. Denne funksjonen gir en sikker bane for støpemetoder for type som "TypeID" -funksjonen eller støping av dynamisk type. Den oppdager datatypeinformasjonen om kjøretiden og hjelper konvertering av datatype når operatørene er i spill.
Dynamisk støping brukes mest. For å jobbe med den dynamiske rollebesetningen, må baseklassen ha en virtuell funksjon. Dynamisk rollebesetning fungerer bare med polymorfe baseklasser fordi den bruker denne informasjonen for å bestemme sikker støping. En dynamisk støpt operatør gjør dynamisk støping. Nå som vi vet om konseptene relatert til dynamisk støping, kan vi gå mot implementeringsdelen. La oss først se på syntaks for bruk av dynamisk støping i C ++ programmeringsspråket, som er skrevet nedenfor:
# “Dynamic_cast (uttrykk)”I uttrykket ovenfor beskriver den første delen navnet på operatøren; I vinkelbesergene skriver vi navnet på datatypen som vi trenger for å konvertere uttrykket vårt til, og i de runde parentesene skriver vi variabelen eller objektets navn som vi vil konvertere.
Nå som vi vet hvordan vi bruker den dynamiske støpte operatøren og fyller ut parametrene for å konvertere datatyper av variabler, kan vi bruke den til å konvertere datatyper av variabler.
Bruke dynamisk støpt metode i Ubuntu 20.04:
For å implementere dette konseptet, må vi bruke flere klasser for å jobbe med for å konvertere objekter i klassen etter arv. Så for å gjøre det først, må vi først vite at C ++ -programfilen i Ubuntu -miljøet er lagret med utvidelsen “.CPP, "Så for å opprette denne filen på skrivebordet vårt, åpne en terminal og skriv" CD Desktop "på kommandolinjen, trykk deretter Enter og skriv inn" Touch Filname .CPP ”for å opprette en fil med“.CPP ”-forlengelse. Nå skal vi skrive en kode i den filen for å opprette en baseklasse og 2 avledede klasser, og i driverkoden bruker vi den dynamiske rollebesetningen.
Avslutt filen etter å ha klikket på lagre -knappen. Gå tilbake til terminalen og bygg filen ved å bruke kommandoen “G ++” med filnavnet ditt og “.CPP ”-forlengelse. En fil med utvidelsen “.ut ”vil bli opprettet ved hjelp av denne kommandoen. Du kan nå kjøre den filen ved å legge inn “./”Etterfulgt av din“.ut ”utvidelse.
I dette programmet lagrer baseklassepekeren avledet klasse 1 -objekter (D1). Den dynamiske støpebaseklassen, pekeren beholdt det DED1 -objektet og tildelte den til avledet klasse 1, som ga gyldig dynamisk støping.
Konklusjon:
Denne artikkelen lærte oss typen Casting -metoden som ble brukt på programmeringsspråket C ++. Type støping ble også diskutert i detalj, og vi fokuserte på behovet for hvorfor vi bruker slike metoder i C ++ programmering. Vi diskuterte assistentfunksjonen som hjelper konvertering av variabelenes datatype ved å hente informasjon og verifisere for riktig konvertering kalt RTTI. Vi implementerte også begrepet dynamisk støping ved å bruke den dynamiske støpte operatøren i et uttrykk i C ++ programmeringsspråket i Ubuntu 20.04 Miljø.