Monday, December 16, 2013

Kelebihan dan Kekurangan Pointer c++

 Bahaya Pointer :
1.Bahaya yang mungkin ada dengan pointer sebagai moniker: memory leak, double delete, invalid memory access.  Semuanya dapat dihindari dengan ownership analysis yang bagus (pada setiap saat, harus diketahui pihak mana yang bertanggung jawab mendelete sebuah object). Jika hal ini sulit dilakukan, misalnya karena shared ownership, anda dapat menggunakan smart pointer atau garbage collector
2.Bahaya yang mungkin ada dengan pointer sebagai iterator: array out of bound. Salah satu cara yang efektif menghindari hal ini adalah dengan menggunakan standard algorithm. 3.Bahaya yang mungkin ada dengan pointer sebagai abstraksi fixed memory : Tidak tahu, tetapi ini bukan mainan sembarang programmer.

         Bahasa Pemrograman tanpa pointer ? 1.Semua Bahasa pemrograman Fungsional, terutama yang murni , tidak mengenal pointer atau memerlukan pointer.  Akan tetapi bahasa ini menggunakan model komputasi yang jauh berbeda, bukan abstract C machine. 2.Beberapa bahasa pemrograman dengan reference semantik dapat mengklaim mereka tidak memiliki pointer,  akan tetapi setiap variabel sebenarnya adalah pointer. Secara fisik mungkin reference tidak memiliki struktur  seperti pointer (biasanya merupakan data struktur yang lebih kompleks sehingga lebih friendly terhadap garbage collector) tapi reference tersebut memiliki fungsi  yang mirip dengan pointer di C atau C++.     Ada yang bilang bahwa reference dalam bahasa - bahasa ini menyebabkan optimasi lebih mudah karena tidak menyebabkan aliasing, tetapi optimasi tersebut juga mungkin dilakukan di C dan C++ ( dengan restrict pointer,  sayangnya belum merupakan bagian dari standard C++).

1 comment: