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