در زبان برنامه نویسی ++C کامپایلر به طور خودکار یک نوع داده را درصورت نیاز به دیگری تبدیل می کند. مثلا اگر یک عدد 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

البته در مثال فوق نوشتن ۲۰۰f به تنهائی کفایت می کند.