Penjelasan Dan Cara Menggunakan Static Member Function

Posted on   Maret 17, 2019   |   Last Modified   Maret 17, 2019
Static Member Function

Bukan hanya variabel dan member variabel saja yang dapat menggunakan keyword static tapi juga Member Function. jika pada member function biasa setiap memberfunction akan dimiliki oleh masing-masing object.

Penjelasan Static Member Function

Static Member Function adalah Member function yang menggunakan keyword static yang akan bersifat dimiliki oleh semua object termasuk class tersebut. member function tersebut akan hanya ada satu dan bisa di gunakan di semua object yang menggunakan class tersebut. dan juga static member function akan ada meskipun belum ada instance dari class.

Bentuk umum penulisan

static tipe_data nama_function(parameters…){
	//Definsi..
}

Contoh penulisan

class siswa{
private :
	static int s_id;
public :
	static int getS_id(){return s_id;}
};
Int siswa::s_id =0;

Cara Mengakses Static Member Function

Untuk mengakses static member function memilki dua cara sama seperti kita melakunya pada static member variable, yang pertama kita bisa melakukanya melalui object, dengan menambahkan Member Akses Operator . di antara nama object dan nama member.

Contoh penulisan Akses Melalui Object

nama_object.getS_id();

di setiap object akan memiliki static member function yang sama karena static member function hanya ada satu. cara kedua adalah kita dapat mengakses melalui nama dari class langsung dengan menambahkan tanda Scope Resolution Operator ( :: ) di antara nama class dan member function, hal ini dapat dilakukan ada atau tidak ada instantiation pada class.

Contoh penulisan Akses Melalui Class

nama_class::getS_id();

Untuk static member function tidak seperti static member variable yang mengharuskan kita mendefinisi member di luar class. Static member function dapat langsung digunakan setelah deklarasi Static Member Function.

Contoh program

#include <iostream>
#include <string>
using namespace std;

class siswa{
private:
    static int s_id;
public:
    int id;
    string nama;

    void setID();
    void printAll();

    static void setS_id(int pS_id){s_id=pS_id; /*Definisi Function*/}
    static int getS_id(){return s_id; /*Definisi Function*/}

    siswa(string pnama):nama(pnama){setID();}
};

int siswa::s_id=0;

void siswa::setID(){
    id = ++s_id;
}

void siswa::printAll(){
    cout<<"ID   = "<<id<<endl;
    cout<<"Nama = "<<nama<<endl;
    cout<<endl;
}

int main(){
    siswa dadi("Dadi family");
    siswa budi("Budi Dudi Dodi");
    siswa::setS_id(9); //mengakses s_id melalui static member function “setS_id” 
    siswa andi("Andi Dadi Loro");
    siswa william("Joko Will");

    dadi.printAll();
    budi.printAll();
    andi.printAll();
    william.printAll();

    cout<<"akses dari luar object = "<<siswa::getS_id()<<endl; //mengakses s_id melalui static member function “getS_id” 

    return 0;
}

Untuk definisi static member function kita harus memperhatikan apa yang akan kita panggil. Static member function dapat memanggil static member lainnya. untuk memanggil non static member kita membutuhkan object untuk dapat melakukanya, karena kita tahu bahwa non static member hanya ada pada object.

Baca :   Pointer: Dasar


Tinggalkan Balasan

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