C++ Tür Dönüşümü

Tür dönüşümü konusunu bir kaç başlık altında incelemekte fayda var. Öncelikle otomatik tür dönüşümü nedir bundan bahsetmek istiyorum.

Otomatik tür dönüşümü, derleyici tarafından kullanıcının herhangi bir bildirim yapmadığı durumda olur. Böyle durumlarda veri kaybının önlenmesi için type promotion olarak adlandırılan durum gerçekleşir. Veri türleri yükseltilir. Peki bu ne demek örnekle açıklayalım.

Sanırım bu kod her şeyi açıklıyor 🙂

Otomatik tür dönüşümüne implicit conversion adı da veriliyor. Bunun bir diğer hali ise Explicit yani (int)degisken şeklinde parantez atomu arasında dönüştürmek istediğimiz tür adını yazdığımız ve derleyiciye açıkça bildirdiğimiz tür dönüşüm türü. Özel durumlar haricinde C++’ta bu tür dönüşümünü kullanmaktan kaçınıyoruz . Peki ne yapacağız ?
Parantez atomu ile yapılan tür dönüşümü old style casting olarak adlandırılıyor. Old dediğimize göre bunun birde new’u olmak zorunda değil mi :). İşte bahsettiğimiz bu old style yerine cast operatörü ile belirtilen 4 ayrı tür dönüşümünü kendilerine has yerlerde kullanacağız. Dolayısı ile tür dönüşümünün neden yapıldığı bilinmiş olacak. Bahsettiğimiz tür dönüşümleri:

  • Static Cast
  • Dynamic Cast
  • Const Cast
  • Reinterpret Cast

Static Cast

    float fSayi = 1.0; 
    int iSayi = static_cast<int>(fSayi); 

Yukarıdaki tür dönüşümünü C’de int iSayi = fSayi; şeklinde yapardık değil mi ?

Const Cast

Devamı gelecek…