Како најбоље имплементирати конверзију типова у Ц ++?



Овај чланак ће вас упознати са претварањем типова у језику Ц ++, а затим ће пратити детаљну програмску демонстрацију истог.

Овај чланак ће вас упознати са још једном занимљивом темом у којој се врши конверзија типова Ц ++ и пратите га детаљним практичним демонстрацијама. Следећи смерници ће бити обрађени у овом чланку,

Па кренимо онда,





Конверзија типова у Ц ++

Конверзија типа односи се на конверзију из једне врсте у другу. Главна идеја која стоји иза претварања типа је учинити променљиву једног типа компатибилном са променљивом другог типа да би се извршила операција. На пример, да бисте пронашли збир две променљиве, једне типа инт и друге типа флоат. Дакле, треба да откуцате променљиву цаст инт да плута да бисте обоје направили плутајући тип за проналажење зброја. На овом блогу ћемо научити како се врши конверзија типова на Ц ++.

У Ц ++-у постоје два типа претворбе типа, тј. Имплицитна конверзија типа и експлицитна конверзија типа.



Имплицитна конверзија типа

Имплицитну конверзију типа или аутоматску конверзију типа врши сам преводилац. Не постоји спољни окидач који корисник захтева за пребацивање променљиве из једног у други тип.

ц ++ метода сортирања

То се дешава када израз садржи променљиве више од једног типа. Дакле, у тим сценаријима се одвија аутоматска конверзија типа како би се избегао губитак података.У аутоматској конверзији типа, сви типови података присутни у изразу претварају се у тип података променљиве са највећим типом података.

Испод је редослед аутоматског претварања типа. Такође можете рећи, најмањи до највећи тип података за конверзију типа.



боол -> цхар -> схорт инт -> инт -> унсигнед инт -> лонг -> унсигнед -> лонг лонг -> флоат -> доубле -> лонг доубле

Имплицитне конверзије могу изгубити информације као што су знакови када се потписан тип имплицитно претвори у непотписани тип и може доћи до преливања када се имплицитно претвори у флоат.

Погледајмо сада пример да бисмо разумели како имплицитна конверзија типова функционише у Ц ++.

Пример

#инцлуде усинг намеспаце стд инт маин () 12в {инт инт1 = 100 // интегер инт1 цхар цхар1 = 'ц' // цхарацтер цхар1 // цхар1 имплицитно претворен у инт користећи АСЦИИ вредност 'ц' тј. 99 инт1 = инт1 + цхар1 // инт1 се имплицитно претвара у флоат флоат флт1 = инт1 + 2.7 цоут<< 'int1 = ' << int1 << endl << 'char1 = ' << char1 << endl << 'flt1 = ' << flt1 << endl return 0 }

Оутпут

инт1 = 199

цхар1 = ц

флт1 = 201,7

Следеће у овој конверзији типа у чланку Ц ++,

Експлицитна конверзија типова

Експлицитна конверзија типа или преливање типа је кориснички дефинисана конверзија типа. У експлицитној конверзији типа, корисник претвара један тип променљиве у други тип. Експлицитна конверзија типа може се извршити на два начина у Ц ++:

  • Конвертовање по задатку
  • Конверзија помоћу оператора Цаст

Погледајмо сада сваки од начина експлицитног пребацивања једног типа на други.

Конвертовање по задатку

У овој конверзији типа потребан тип је изричито дефинисан испред израза у загради. Губитак података се дешава у експлицитном лијевању типа. Сматра се снажним бацањем. Погледајмо пример.

Пример

#инцлуде усинг намеспаце стд инт маин () {доубле дбл1 = 8.9 // Експлицитна конверзија из доубле у инт инт рес = (инт) дбл1 + 1 цоут<< 'Result = ' << res return 0 }

Оутпут

Резултат = 9

Следеће у овој конверзији типа у чланку Ц ++,

Конверзија помоћу Цаст Оператор

Оператор емитирања је унарни оператер који присиљава један тип података да се претвори у други тип података. Постоје четири врсте ливења у Ц ++-у, тј. Статиц Цаст, Динамиц Цаст, Цонст Цаст и Реинтерпрет Цаст.

  • Статиц Цаст - Ово је најједноставнија врста одливака која се може користити. Не изводи само надоградње, већ и спуштања. То је време састављања. Провере се не извршавају током извршавања како би се загарантовало да је објекат који се претвара пуни објекат одредишног типа.
  • Динамиц Цаст - Осигурава да резултат претворбе типа указује на важећи, цјеловити објект одредишног типа показивача.
  • Цонст Цаст - манипулише тиме да ли објекат треба да буде константан или несталан. Обезбеђује да константу треба подесити или уклонити.
  • Поново тумачите Цаст - претвара било који тип показивача у било који други тип показивача, чак и неповезаних класа. Не проверава да ли су тип показивача и подаци на које показује показивач исти или не.

Погледајмо пример статичког лива,

Пример

контроверзе вештачке интелигенције за и против
#инцлуде усинг намеспаце стд инт маин () {флоат флт = 30.11 // помоћу оператора цаст инт инт1 = статиц_цаст (флт) цоут< 

Оутпут

30

Ово нас доводи до краја овог чланка о Претворби типова у Ц ++.Надам се да вам је ово било информативно и корисно, пратите још лекција о сличним темама. Такође можете погледати наш програм обуке то можете добити детаљно знање о јКуери-у, заједно са разним апликацијама за онлајн обуку уживо са подршком 24/7 и доживотним приступом.

Имате питање за нас? Спомените их у одељку за коментаре овог чланка и јавићемо вам се.