Kadang kita ingin mengelola array dengan elemen yang banyak dan tipe data
bervariasi. Karena array dasarnya berupa pointer, yaitu nama array adalah
alamatindeks awal dari sebuah array maka dapat dimanfaatkan untuk membuat tipe data abstrak array
dinamis.
Kelas
Array1D mempunyai private data member 2 buah yaitu size bertipe int
(28), yang menyatakan banyak elemen dari array, dan pointer element yang menyatakan array itu sendiri (29). Banyaknya elemen
array element ditentukan berdasarkan size.
Konstruktor kelas Array1D ukurannya ditentukan dari luar kelas sebesar sz
(33) yang di-assign ke data member size (35), kemudian dipesan memori sebanyak sz
untuk array element (36).
Kita dapat menyalin dengan cara meng-assign setiap elemen array ke variabel
array yang lain dengan menggunakan konstruktor berikut ini.
Ukurannya disalin dari objek v (41), kemudian dipesan memori sebanyak
ukurannya (42). Proses penyalinan elemen dilakukan elemen demi elemen (43 dan 44).
Kita juga dapat mengakses elemen tertentu dari array menggunakan operator
[] berikut ini.
operator penugasan khusus array dengan cara mengoverload operator =
Operator = pada dasarnya berfungsi untuk menyalin semua elemen dari array
v (53) ke array yang lain, dalam hal ini diwakili this. Jika v bukan dirinya sendiri (54)
maka proses penyalinan akan dilaksanakan. Langkah pertama, ukuran dari v disalin
(55). Elemen lama (bila ada) dibebaskan (56). Kemudian dipesan memori sebesar ukuran
size untuk array element (dalam hal ini yang ditunjuk pointer this) (57). Setelah itu
baru disalin elemen demi elemen (58) setiap elemen array v ke elemen array this (59).
Pointer this dikembalikan (61).
misal z = x + y. Ketika pernyataan dieksekusi, x akan mewakili objek saat ini yang akan mengakses
semua data member, sedangkan y akan mewakili v. Harga yang dikembalikan, yaitu w
kemudian di-assign ke z. Operasi penjumlahan akan dilakukan pada setiap elemen (67
dan 68).
Sama halnya dengan pengoperasian pada operator + diatas. Operasi penjumlahan di ubah menjadi pengurangan
Sama dengan dua operasi terdahulu, namun pada operasi ini setiap element di negasikan
Diatas merupakan operasi untuk perkalian
Program ini saya kutip dari Modul Struktur Data 2014