![]() |
C++ tür dönüşümü işleçleri C++'ta derleyicinin otomatik olarak yaptıklarının dışında beş tane tür dönüşümü vardır:
C'nin tür dönüşümü hâlâ en güvensizidir. C++'ın getirdikleri içinde de reinterpret_cast, davranışı çalışılan ortama bağlı olduğu için ve nesnelerin bitlerini değişik anlamda kullandırdığı için en güvensizidir. C'den kalan tür dönüşümünü zaten hiç kullanmayın. Derleyici size bu konuda hiçbir yardımda bulunmaz. C++'ın getirdiklerini kullanırsanız, yanlış kullandığınız yerlerde derleme hataları ile uyarılabilirsiniz. Aslında zaten tür dönüşümlerinden her zaman için uzak durmaya bakın. Tür dönüşümünün neden gerektiğini soruşturun ve kaçınmaya çalışın. 1) static_cast: Derleme zamanında bilinen tür dönüşümleri için kullanılır. Programcının derleyiciye "ben bu nesnenin çalışma zamanında bile aslında şu türden olduğundan eminim" demesi gibidir. (Buradaki 'static' sözcüğü, derleme zamanını belirliyor.) Derleyici yasal olmayan dönüşümlerde hata verir. Yine de programcının derleyiciye yalan söylememesi iyi olur :) İşte derleyiciye yanlış bilgi verdiğimiz için göçen bir Program: PHP- Kodu: Programcı, o noktada 'hayvan' değişkeninin aslında gerçekten bir Kus olduğunu düşünerek derleyiciye bunu bildiriyor. Derleyici de programı buna inanarak derliyor. Çalışma zamanında, işlev ilk çağrıldığında çalışıyor ama ikincisinde göçüyor. Bu örneği, static_cast'in bir doğru, bir de yanlış kullanımını göstermek için verdim. 2) const_cast: Aslında const ve/veya volatile olmadığını bildiğimiz, ama bir noktada karşımıza const ve/veya volatile olarak çıkan bir nesnenin const'lığını ve/veya volatile'lığını kaldırmak için kullanılır. Yine nesnenin gerçekten öyle olduğundan emin olmamız gerekir. Bazı insanlar, volatile ile de çalıştığı için, adının bunu da belirtecek şekilde seçilmiş olması gerektiğini düşünürler. Örneğin 'cv_cast' gibi bir ad daha uygun olabilirmiş; çünkü C++ standardında const ve/veya volatile belirteçlerine de her birden 'cv-qualification' denir. Çoğunlukla const referans (veya gösterge) alması gerektiği halde kötü tasarım sonucu const olmayan referans (veya gösterge) alan işlevleri çağırmada kullanılır. Böyle işlevler bazı kütüphanelerde karşımıza çıkabilirler. PHP- Kodu: |
Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 13:34. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk