Basic C/Cpp: References di C++

Reference

Jika variable dideklarasikan sebagai reference, maka dia akan menjadi alternatif dari variable tersebut. dengan cara ‘&’ di deklarasi.

#include<iostream> 
using namespace std;

int main() 
{ 
int x = 10;

// ref is a reference to x. 
int& ref = x;

// Value of x is now changed to 20 
ref = 20; 
cout << "x = " << x << endl ;

// Value of x is now changed to 30 
x = 30; 
cout << "ref = " << ref << endl ;

return 0; 
}

Output:

x = 20
ref = 30

Reference vs Pointer

keduanya dapat digunakan untuk merubah local variabel di luar fungsi, keduanya juga dapat digunakan untuk menyimpan big object ketika passing sebagai argument to functions atau return dari functions.

Perbedaan:

1. pointer bisa dideklarasikan menggunakan void sedang reference tidak bisa

int a = 10;
void* aa = &a;. //it is valid
void &ar = a; // it is not valid

2. Reference kurang powerfull dibanding pointer

a. setelah reference dibuat, tidak dapat berpindah ke object lain.

b. reference tidak boleh NULL

c. reference harus diinitial saat deklarasi

Dikarenakan limitasi dari reference, C++ tidak dapat digunakan untuk data structure seperti Linked List, Tree, etc. sedangkan di Java bisa, oleh karena itu java tidak menggunakan pointer.

Reference bersifat aman dan mudah digunakan (tidak memerlukan dereferense operator untuk mengakses nilai). & hanya digunakan pada saat deklarasi saja. dan menggunakan ‘.’ dot operator untuk member dari object, sedangkan pointer menggunakan arrow operator (->) untuk mengakses member object.

 

Leave a Reply

Your email address will not be published. Required fields are marked *