Penjelasan Dan Cara Menggunakan Static Member Function

Written by: Fajar   |   Updated on: 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 :   Array Multidimensi

2 Replies to “Penjelasan Dan Cara Menggunakan Static Member Function”

  1. I must show some appreciation to this writer just for rescuing
    me from this type of incident. Just after searching through the internet and seeing suggestions that were not pleasant, I believed
    my life was gone. Being alive without the presence of strategies
    to the difficulties you’ve solved by way of your good site is a critical
    case, and the ones that could have negatively damaged my career if I had not encountered
    the blog. Your primary capability and kindness in maneuvering all the pieces was useful.
    I don’t know what I would have done if I
    hadn’t come upon such a thing like this. I’m able to now relish my future.

    Thank you so much for the specialized and amazing guide.
    I won’t be reluctant to propose your web site to anyone who
    should get tips about this issue.

Tinggalkan Balasan

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