Untuk membuat reference adalah dengan menggunakan tanda & dibelakang tipe data yang akan diacu. Berikut adalah bentuk umum dari pembuatan reference :
tipe_data& nama_alias = nama_variabel;
contoh program :
#include <iostream> #include <cstdlib> using namespace std; int main() { int bejo; //mendeklarasikan variabel bejo //Membuat alias dari variabel bejo dengan nama joe int& joe = bejo; //Mengisikan nilai kedalam variabel bejo bejo = 15; //Menampilkan nilai yang disimpan dalam variabel bejo dan joe cout<<"Nilai variabel bejo : "<<bejo<<endl; cout<<"Nilai variabel joe : "<<joe<<endl; //Mengisikana nilai kedalam variabel joe joe = 21; //Menampilkan nilai kembali yang disimpan dalam variabel bejo dan joe cout<<"Nilai variabel bejo : "<<bejo<<endl; cout<<"Nilai variabel joe : "<<joe<<endl; system("pause"); return 0; }Hasilnya adalah sebagai berikut :
Alamat dari reference
Perlu diperhatikan bahwa sebuah alias dan variabel yang diacu tersebut menempati alamat yang sama du memori, jadi keduanya bukanlah dua buah variabel yang berbeda, melainkan satu variabel yang mempunyai dua nama. Untuk membuktikannya, perhatikan contoh program berikut :
#include <iostream> #include <cstdlib> using namespace std; int main() { int bejo; //mendeklarasikan variabel bejo //Membuat alias dari variabel bejo dengan nama joe int& joe = bejo; //Mengisikan nilai kedalam variabel bejo bejo = 15; //Menampilkan nilai yang disimpan dalam variabel bejo dan joe cout<<"alamat variabel bejo : "<<&bejo<<endl; cout<<"alamat variabel joe : "<<&joe<<endl; system("pause"); return 0; }Hasilnya adalah sebagai berikut :
Konstanta pada reference
Dalam C++, kita juga dapat mendefinisikan sebuah reference yang bersifat tetap (constan reference), artinya nilai dari reference ini tidak dapat diubah. Namun yang menjadi pertanyaannya adalah apakah kita masih dapat merubah nilai dari variabel yang diacu oleh reference tersebut, sedangkan reference tadi bersifat tetap?
Jawabannya adalah 'ya', Kita masih dapat memanipulasinya. Artinya yang menjadi konstan disini adalah hanya referencenya saja, sedangkan variabelnya tidak bersifat konstan.
Contoh program :
#include <iostream> #include <cstdlib> using namespace std; int main() { int x = 7; const int& aliasX = x; x = 10; //Benar karena variabel x tidak bersifat konstan aliasX = 5; //Salah, karena reference aliasX bersifat konstan system("pause"); return 0; }
No comments:
Post a Comment