Penjelasan kata kunci this
Kata kunci this
adalah sebuah ekspresi prvalue (Pure Right Value), yang memiliki nilai sebuah alamat dari parameter objek yang jelas.
Umumnya, orang-orang sering menggunakan kata kunci ini untuk menjadikan sebuah representasi dari objek untuk mengakses sebuah member variabel yang telah di-overridden oleh sebuah variabel yang ada di dalam sebuah member function.
Contoh program:
#include <iostream> using namespace std; class buku{ string judul; public: string setget(string judul){ this->judul = judul; //nilai parameter 'judul' untuk member variabel 'judul' return this->judul; //return variabel judul. } }bukunya; int main() { cout<<bukunya.setget("Belajar C++"); return 0; }
Kata kunci this
tersedia untuk semua badan dari Non-static Member Function, tapi kata kunci ini tidak tersedia pada Static Member Function karena kemampuan dari Static Member Function yang bisa langsung dipanggil oleh nama kelas tanpa melalui objek. Kata kunci this
tersedia pada Non-static Member Function karena compiler memasukan pointer implisit sebagai argument tersembunyi.
Chain Function Calls
Pada dasarnya this
merupakan sebuah objek itu sendiri, selain dapat melakukan representasi dari objek untuk medapatkan suatu member variabel yang spesifik dari objek, this
juga dapat diserahkan kepada return untuk membentuk sebuah Chain Function Calls.
Contoh program:
#include <iostream> using namespace std; class buku{ string judul; public: buku setJudul(string judul){ this->judul = judul; return *this; //chain function } string getJudul(){ return this->judul; } }bukunya; int main() { cout<<bukunya.setJudul("Belajar C++").getJudul(); //chain function calls return 0; }
Dari cara di atas kita dapat melakukan efisiensi pada penulisan program kita karna kita tidak perlu repot-repot menuliskan lebih dari satu baris untuk memanggil beberapa function yang ada pada objek, seperti:
bukunya.setJudul(“belajar C++”); cout<<bukunya. getJudul();
cukup dengan hanya:
cout<<bukunya.setJudul("Belajar C++").getJudul(); //dan bisa melakukan pemanggilan function lebih banyak lagi.