Penjelasan Kata Kunci this dan Pemanggilan Function Berantai

Written by: Fajar   |   Updated on: Mei 30, 2020
Penjelasan Kata Kunci this dan Pemanggilan Function Berantai

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.
Baca :   Pengertian Pass by Reference

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *