C ++ DeclType

C ++ DeclType
“Type inferens er den automatiske bestemmelsen av datatypen til en uttalelse på et dataspråk. Et uttrykks mulige verdier ved kjøretid ble begrenset av den manuelle erklæringen av hver datatype før C ++ 11. Hvis vi kan bruke type inferens, kan vi skrive mindre kode for å uttrykke noe kompilatoren allerede forstår. Selv om kompileringstiden øker betydelig siden alle typer bare bestemmes i kompilatorfasen, er programmets utførelsestid ikke påvirket. Her vil vi diskutere C ++ nøkkelordetaket og dens funksjonalitet.”

Hva er dekltype i C++

Det ser på en enhets eller et uttrykks uttalte type. DeclType er en slags operatør som undersøker typen gitt uttrykk, i motsetning til "auto", som lar deg definere en variabel med en viss type, men lar deg hente typen fra variabelen. Typeinformasjon leveres av DeclType under sammenstilling og av TypeId under utførelse. Som et resultat, hvis et objekt av en avledet klasse har en baseklassereferanse eller peker som peker på den, vil TypeId gi den avledede typen referanse eller peker i stedet for type, som vil bli gitt av Decltype.

Når det er nødvendig å kjenne til den dynamiske typen av et objekt, brukes operatørtypen. Imidlertid er det faktiske navnet som returneres noe kompilatoravhengig.

Den generelle syntaks C ++ sørger for deklType er som følger:

Syntaks:

DeclType (uttrykk)

DeclType tar bare en parameter, som er et uttrykk. DeclType returnerer uttrykksparameterens type. Ved hjelp av følgende retningslinjer avhenger kompilatoren av typen ekspresjonsparameter.

  • Når ekspresjonsparameteren er en tilgang til et klassemedlem eller en identifikator, er typen av objektet som er identifisert av uttrykket DeclType (uttrykk). Hvis et slikt objekt ikke eksisterer, eller hvis uttrykksargumentet spesifiserer en gruppe overbelastede funksjoner, utsteder kompilatoren en feilmelding.
  • Hvis inngangsuttrykket kaller en metode eller en operatørfunksjon med mange overbelastninger, er returtypen til en gitt funksjon DeclType (uttrykk).

Eksempel 1

Implementeringen av diskusjonen ovenfor er gitt av DeclType -koden. Siden mer enn en variabel, funksjon, klasse osv., kan ikke ha samme navn i det identiske omfanget. Navnområdet blir derfor introdusert for å løse dette problemet. Etter dette har vi etablert funksjonen “my_func1” som returnerer heltallverdien “5”, da vi opprinnelig har spesifisert Int -datatypen til funksjonen “MY_FUNC1”.

Igjen har vi etablert en funksjon som "my_func2" og tildelt en char datatype til den. Denne funksjonen returnerer karakterverdien “jeg”. Deretter har vi konstruert programmets INT Main (), der vi har distribuert DeclType Modifier. DeclType -modifikatoren tar henholdsvis "my_func1" og "my_func2" som et argument, henholdsvis. Til DeclType har vi også definert de to variablene som "A" og "B".

Variablene “A” og “B” har de samme datatypene som returtypen “my_func1” og “my_func2”. Deretter har vi en COUT -uttalelse der TypeID tar variablene “A” og “B” som input og vil returnere typen på disse variablene.

#inkludere
ved hjelp av navneområdet STD;
int my_func1 () return 5;
char my_func2 () return 'l';
int main ()

DeclType (my_func1 ()) a;
DeclType (my_func2 ()) b;
cout<cout<retur 0;

Ettersom typen "my_func1" er int og "my_func2" er røye. Så i utgangen returneres typen "jeg" og "c", noe som indikerer Int og Char -typen.

Eksempel 2

En ekstra illustrasjon av dekltypebruk er gitt nedenfor, som er litt annerledes enn den forrige. Vi har direkte konstruert hoved () av ​​dette programmet etter overskriftsdelen. Inne i programmets INT Main () har vi erklært variabelen “Num” og tildelt et nummer “10” til det. Deretter har vi kalt DeclType -modifikatoren, som tar variabelen “Num” som en parameter. Med DeclType -modifisereren har vi også satt variabelen “I” som har typen int den samme som typen av variabelen “Num”.

Deretter la vi til Num og nummeret "10" ved å bruke plussoperatøren inne i "jeg" -variabelen. Etter dette har vi en cout -kommando der TypeId påberopes som tar variabelen “I” som en inngang og gir sin type.

#inkludere
ved hjelp av navneområdet STD;
int main ()

int num = 10;
DeclType (num) i = num + 10;
cout<< "decltype : " <retur 0;

Når vi gir INT -typen til variabelen "Num" i kodebiten ovenfor. Utgangen viser ordet “i” som er Int -typen til variabelen “Num”.

Eksempel 3

Minimumstallnummeret returneres av C ++ malmetoden min type (), som sees nedenfor. Enhver integrert type kan brukes til de to tallene. Den minimale typen to brukes til å bestemme returtypen.

Med Auto Modifier har vi opprettet funksjonssøkeminet () og passert variablene X og Y som en parameter inne i den. Deretter tildelte vi variabelnavnene til nøkkelordet. DeclType tar variabelen med det betingede uttrykket. Funksjonen søker etter minimumsverdien og returnerer typen variabel som har minimumsverdi. Neste, innen INT Main (), har vi gitt verdien til Seatchmin -funksjonen gjennom cout -kommandoen.

#inkludere
ved hjelp av navneområdet STD;
mal
Auto Searchmin (T1 X, T2 Y) -> DeclType (x < y ? x : y)

Retur (x < y) ? x: y;

int main ()

cout<cout<retur 0;

Utgangen viste minimumsverdiene nedenfor. Fra den første SEACKMIN -uttalelsen, 4.55 returneres fra dobbelttypen. Deretter oppnås den andre uttalelsen, 2, fra Int -datatypen.

Konklusjon

Det handler om C ++ Decltype. Vi har diskutert det kort med definisjonen, syntaks og funksjonalitet i denne artikkelen. Her har vi vist dekltype som jobber med løpseksempelkoden i C++. Alle forekomstene er forskjellige fra hverandre. Forekomstene er alle forskjellige fra hverandre. DeclType -skriptet med auto -prefikset er demonstrert i det siste eksemplet. Nøkkelordet for automatisk type fradrag, Auto, brukes i C ++ 11 og utover.