Daripada Wikipedia, ensiklopedia bebas.
Dalam
sains komputer
,
kebetulan const
ialah bentuk kebetulan atur cara yang berurusan dengan kebetulan cara pengisytiharan objek sebagai
boleh ubah atau tak boleh ubah
. Istilah ini paling banyak digunakan dalam konteks
C
atau
C++
, dan namanya diambil sempena kata kunci
const
dalam bahasa-bahasa tadi.
Idea ke-
const
-an tidak bermaksud bahawa pemboleh ubah?kerana ia tersimpan dalam
ingatan
komputer
?tidak boleh ditulis. Sebaliknya, ke-
const
-an ialah suatu binaan
masa kompil
yang menandakan apa yang
patut
seseorang pengaturcara buat, tidak semestinya apa yang mereka
boleh
buat. Pun begitu, perlu diingat bahawa dalam kes data pratakrif (misalnya rentetan harafiah
const char *
),
const
C
selalunya
tidak boleh ditulis.
Sebagai tambahan, sesebuah
kaedah
boleh diisytiharkan sebagai
const
. Dalam perkara ini, penuding 'this' dalam sesebuah kaedah sebegini adalah berjenis
const ThisClass* const
bukan
ThisClass* const
. Maksudnya, kaedah bukan
const
bagi objek ini tidak boleh dipanggil daripada kaedah sebegini,
pembolehubah-pembolehubah ahlinya
juga tidak boleh diubah. Dalam C++, sesebuah pemboleh ubah ahli boleh diisytiharkan sebagai
mutable
, menandakan bahawa kekangan ini tiada kesan keatasnya. Ini berguna dalam kes-kes seperti dengan
peng-cache-an
,
penghitungan rujukan
, dan
penyerentakan data
. Dalam kes-kes ini, makna logik (keadaan atau
state
) bagi objek tidak bertukar, namun objek terbabit tidak secara fizikalnya malar kerana pewakilan bitnya mungkin berubah.
Semua jenis data dalam C++, termasuk yang ditakrifkan pengguna, boleh diisytiharkan
const
, dan mengharuskan kesemua objek harus diisytiharkan begitu melainkan ia perlu diubah. Penggunaan
const
yang proaktif ini membuatkan nilai menjadi lebih senang difahami dan dijejaki
[1]
lantas menjadikan kod lebih mudah dibaca dan difahami seterusnya menjadikan bekerja dalam satu pasukan dan menyelenggara kod lebih mudah kerana ia menyampaikan maklukmat tentang kegunaan sesuatu nilai.
Bagi jenis data bukan penuding yang ringkas, pemeri
const
dipakai secara terus. Ia boleh diletakkan pada mana-mana sisi jenisnya atas sebab sejarah (yakni
const char foo = 'a';
bersamaan dengan
char const foo = 'a';
). Dalam beberapa pelaksanaan, amaran akan dijanakan jika menggunakan
const
pada kedua belah sisi jenisnya (misalnya,
const char const
), tapi bukan ralat.