RINGKASAN JURNAL
2.1 PENGANTAR
Pemrograman generik (GP) 1 adalah pemrograman baru Paradigma yang didukung oleh
bahasa pemrograman C ++. Program menggunakan pemrograman generik termasuk data generik
struktur (dalam bentuk kelas templat) dan generik algoritma (dalam bentuk fungsi templat).
Struktur data tures dan algoritma dihubungkan satu sama lain oleh "konsep". Suatu konsep
menggambarkan sekumpulan persyaratan pada a tipe data, dan ketika tipe data tertentu
memenuhi semua ini persyaratan, kami mengatakan bahwa itu adalah "model" dari konsep itu.
Sebenarnya, algoritma beroperasi pada model yang argumennya kecuali, dan struktur data ditulis
sebagai model algoritma konsep argumen rithms. Abstraksi "konsep" ini adalah esensi dari
pemrograman generik. GP berbeda dari paradigma berorientasi objek (OO), 2 yang melibatkan
asosiasi tipe data dengan hierarki pewarisan dalam banyak aspek.
Bagian struktur data MHTL mencakup beberapa kelas, yang terutama merupakan model
dari dua konsep: Properties dan Molekul. Properti Konsep dan Modelnya. Tindakan umum yang
dilakukan pada benda kimia adalah mengatur dan mendapatkan propertinya. Properti dapat
berupa posisi dan gaya atom, ikatan memesan, titik didih molekul, dan titik leleh. Yang bisa
terlihat, properti dapat berupa tipe data apa pun, bahkan yang ditentukan pengguna jenis.
Ketidakpastian dalam jenis properti ini membuat aksesnya dan penyimpanan pekerjaan yang
sulit, dan di GP solusi untuk jenis ini ketidakpastian adalah mengatur tipe sebagai argumen
templat; jadi kami mensyaratkan bahwa model Properties memiliki dua beriku fungsi anggota:
Kedua fungsi ini dapat digunakan untuk mengakses properti tipe apa pun, tetapi properti
dengan tipe yang sama tidak bisa dibedakan, dan mengharuskan pengguna menyatakan masing-
masing properti tipe data secara eksplisit. Untuk membantu pengguna mendefinisikan jenis
properti dengan mudah, kami telah mendefinisikan kelas templat PropertyT sebagai berikut:
PropertyT mengambil dua argumen templat: satu adalah Pid, yang merupakan nomor
identifikasi dari jenis properti, dan dapat digunakan untuk membedakan berbagai properti; yang
lainnya adalah Ptype, tipe data aktual dari properti. Untuk memastika perilaku tipe turunan
adalah sama dengan tipe aktual, miliki salinan konstruktor dan fungsi konversi tipe data sudah
termasuk dalam kelas. Anggota data statis dan const bernama PropertyId telah didefinisikan di
dalam kelas, yang digunakan untuk identifikasi tipe properti. Kami mendefinisikan a sifat untuk
properti untuk membantu pengguna mengakses PropertyId. Sifat itu berikut:
Jenis UDT diberi PropertyId dari 10 dengan cara ini, dan pengguna harus menjaga
keunikan PropertyId oleh mereka sendiri. Karena konsep Properties telah didefinisikan dan jenis
properti telah dideklarasikan, masalah kita adalah bagaimana caranya menyadari dua fungsi
anggota ini. Secara tradisional, properti disimpan sebagai variabel anggota dan diakses
menggunakan fungsi setter dan pengambil. Ini Metode ini sangat efisien, tetapi dengan cara ini
adalah properti tidak diakses oleh antarmuka terpadu. Kode berikut illus- menguraikan
bagaimana metode ini bisa mendapatkan akses ke elemen atom ment:
Teknik spesialisasi templat dapat digunakan untuk meningkatkan metode tradisional. Dengan
menggunakan metode ini, kita dapat mewujudkan kelas yang merupakan model Properti dan
menyimpan properti sebagai variabel anggota. Kode berikut ini menunjukkan teknik ini:
Ketika kami menggunakan metode spesialisasi templat ke mengakses properti, kita masih
perlu mendefinisikan dua fungsi anggota untuk setiap properti. Pekerjaan ini dapat
disederhanakan dengan menggunakan templat meta-programming. Meta-pemrograman template
adalah bahasa waktu kompilasi, yang berarti program yang ditulis dalam template meta-program-
menjalankan dan mendapatkan hasilnya dalam waktu kompilasi. MPL modul perpustakaan
BOOST adalah produk dari meta template pemrograman.
Komponen inti MPL adalah daftar jenis. Orang bisa lebih dulu membangun daftar jenis
dan kemudian melakukan berbagai macam operasi di atasnya, seperti menambahkan,
menghapus, menemukan, dan sebagainya. Komponen tuple10 MPL sesuai untuk digunakan di
sini, yang dihasilkan oleh warisan linier bidang tuple. Itu penggunaan tuple seperti struct dalam
bahasa C, tetapi menyediakan a antarmuka terpadu untuk mengakses anggotanya berdasarkan
jenis. Pengikut kode menggambarkan metode tuple: