Pointer Pada Classes C++

posted in: Pemrograman C++ | 0

Pointer Pada Classes C++

Selain diaplikasikan pada variabel, pointer ternyata dapat diaplikasikan pada sebuah kelas. Deklarasi pointer pada kelas, juga sama seperti pointer-pointer pada umumnya dengan menggunakan sintaks sebagai berikut:


namaKelas *pointerKelas

Deklarasi di atas akan menghasilkan suatu pointer yang dapat digunakan dalam menunjuk member suatu kelas. Sekarang bagaimana menghubungkan antara objek suatu kelas dan pointer dimana kamu dapat menggunakan pointer sebagai jalan akses pemanggilan member kelas? Berikut Mimin contohkan sintaks sederhananya:


bangun objek;
bangun *pointerKelas;
pointerKelas = &objek;

Pada sintaks di atas, yaitu baris pertama dan kedua menunjukan terdapat satu buah objek dan pointer kelas bangun. Kemudian di baris ketiga, variabel pointerKelas diberikan alamat objek dari kelas bangun. Sehingga sekarang variabel pointerKelas berisi alamat dari objek kelas bangun.

Setelah kamu mendapatkan alamat objek kelas dalam pointer kelas, sekarang bagaimana cara mengakses member kelas melalui pointer? Kamu bisa menggunakan operator (->). Sehingga apabila kelas bangun memiliki member bernama luas, maka kamu dapat mengaksesnya dengan menuliskannya sebagai berikut:


pointerKelas->luas;

Agar kamu lebih memahami, Mimin contohkan dengan menggunakan kode program kelas sederhana yang pada sinau sebelumnya sudah Mimin gunakan sebagai berikut:

#include <iostream>
using namespace std;

class bangun{
private:
 float x,y;
public:
 float luas(){return x*y;};
 bangun();
 bangun(float panjang, float lebar);
};

//overloading konstruktor
bangun::bangun(){
x = 10;
y = 10;
}

bangun::bangun(float panjang, float lebar){
x = panjang;
y = lebar;
}


int main(){
 bangun a; //Membuat objek kelas bangun
 bangun *pointerKelas; //membuat pointer kelas bangun
 pointerKelas = &a; //Memberikan alamat objek kelas pada pointer
 cout<<"Nilai dari a.luas() adalah = "<<a.luas()<<endl;
 cout<<"Nilai pointerKelas->luas() adalah = "<<pointerKelas->luas()<<endl;
 return 0;
}

Berikut hasil output programnya:

pointerKelas

Dari output program di atas terlihat bahwa, nilai yang dihasilkan oleh member luas() baik cara akses menggunakan objek maupun pointer adalah sama.

 

“Selagi masih ada ilmu yang bermanfaat dan kesempatan, sebarkanlah”

Salam sinauarduino.com

Leave a Reply