| |
 | Posted by Ali Çehreli (acehreli) in reply to hsencan | Permalink Reply |
|
Ali Çehreli (acehreli) 
Posted in reply to hsencan
| Nesne yönelimli programla C++ (ve başka) dillerde class (veya struct) ile uygulanır. class'ın sorunu, türün genele açık (public) arayüzü ile kendisine özel parçalarını (private) aynı yerde birleştirmesidir. Sorunlu olmasının nedenleri:
- Örneğin, push_back vs. ile kullandığımız vector'ün sunduğu elemanları bellekte nasıl tuttuğu vs. bizi ilgilendirmemelidir
- vector'ün gerçekleştirmesinde olası değişiklikler bizim kodumuzun tekrar derlenmesi gerektirmemelidir
pimpl, gerçekleştirmenin C dilinde void* arkasına gizlenmesinin sınıflara (ve yapılara) uygulanmış halidir. Kullanıcı sınıfın yalnızca genele açık olan işlevlerini görür. Sınıfın içindeki tek özel üye, pimpl (Pointer to IMPLementation: gerçekleştirme göstergesi) isimli üyedir. Sınıfın genel işlevleri işlerini o üyeye havale ederler; o üye .cpp dosyasında tanımlanmıştır ve gerektiği kadar karmaşık olabilir. Kullanan kod bu karmaşıklıktan korunmuş biçimde yalnızca pimpl'ın varlığını bilerek yaşamaya devam eder.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
|