کامپايلر به طور خودکار يک نوع داده را درصورت نياز به ديگري تبديل مي کند. مثلا اگر يک عدد int در متغير float ذخيره شود کامپايلر مقدار را به float تبديل مي کند. هميشه نوع کوچکتر به نوع بزرگتر تبديل مي شود. اگر يک عدد float با double جمع شود با هردو به عنوان double برخورد مي شود.
اگر سعي کنيد مقدار بزرگتري را در متغير کوچکتر ذخيره کنيد بخشي از داده ممکن است از دست برود و احتمالا با يک پيغام هشدار مواجه خواهيد شد.
مثال.
char a='2';
int b= a+ 9;
const int big=110232343;
const short int small=big;
اگر برنامه نويس بخواهد صريحا عمل تبديل نوع را انجام دهد از casting استفاده مي کند. براي اين کار نوع داده مورد نظر را درون پرانتز سمت چپ مقدار قرار دهيد. مقدار مي تواند متغير، ثابت، حاصل يک عبارت يا مقدار برگشتي يک تابع باشد.
مثال.
int b = 200;
unsigned long a = (unsigned long int)b;
در C++ راه ديگري هم براي تبديل نوع وجود دارد. در اين روش مانند فراخواني توابع پرانتز اطراف مقدار قرار مي گيرد.
مثال.
float a = float(200);
// This is equivalent to:
float b = (float)200;
البته در مثال فوق نوشتن 200f به تنهائي کفايت مي کند.
اگر سعي کنيد مقدار بزرگتري را در متغير کوچکتر ذخيره کنيد بخشي از داده ممکن است از دست برود و احتمالا با يک پيغام هشدار مواجه خواهيد شد.
مثال.
char a='2';
int b= a+ 9;
const int big=110232343;
const short int small=big;
اگر برنامه نويس بخواهد صريحا عمل تبديل نوع را انجام دهد از casting استفاده مي کند. براي اين کار نوع داده مورد نظر را درون پرانتز سمت چپ مقدار قرار دهيد. مقدار مي تواند متغير، ثابت، حاصل يک عبارت يا مقدار برگشتي يک تابع باشد.
مثال.
int b = 200;
unsigned long a = (unsigned long int)b;
در C++ راه ديگري هم براي تبديل نوع وجود دارد. در اين روش مانند فراخواني توابع پرانتز اطراف مقدار قرار مي گيرد.
مثال.
float a = float(200);
// This is equivalent to:
float b = (float)200;
البته در مثال فوق نوشتن 200f به تنهائي کفايت مي کند.