Bantu Belajar

Kamis, 27 Agustus 2015

Static Data Member Pada C++


Static Data Member adalah sebuah variabel statis yang terdapat pada sebuah kelas. Data statis ini hanya dibuat satu kali pada suatu class. Jadi hanya satu member statis dapat digunakan semua class turunan. Karena karakteristik tersebut, sebuah data statik haruslah diperlakukan khusus. 

Untuk menggunakan data statik, kita perlu menyediakan sebuah lokasi terlebih dahulu di stack sebelum menciptakan objek apapun. Kita dapat melakukannya dengan melakukan deklarasi variabel di luar lingkup kelas yang bersangkutan.

Data member statis ini sering dipakai untuk mendeklarasikan konstanta pada suatu kelas. Field static pada data member statis juga dapat diakses tanpa membuat suatu objek (diakses langsung dari kelas).

Untuk lebih jelas perhatikan contoh program berikut ini, program ini seperti biasa menggunakan program Microsoft Office Studio 2013, atau jika kalian memiliki compiler lain bisa mengganti int _tmain(int argc, _TCHAR* argv[]) menjadi int main() dan menghapus #include "stdafx.h" agar tidak terjadi error.


// StaticDataMember.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class CCube
{
public:
static int objectCount;
explicit CCube (double panjang, double lebar, double tinggi):
m_panjang(panjang),m_lebar(lebar),m_tinggi(tinggi)
{
objectCount++;
}

CCube()
{
cout << "Default Constructor" << endl;
m_panjang = m_lebar = m_tinggi = 3.0;
objectCount++;
}

double volume()
{
return m_panjang*m_lebar*m_tinggi;
}

bool compare(CCube xCube)

{
return this->volume() > xCube.volume();
}

private:
double m_panjang;
double m_lebar;
double m_tinggi;
};

int CCube::objectCount(0);

int _tmain(int argc, _TCHAR* argv[])
{
CCube balok[5];
double volume;

volume = balok->volume();

cout << "Volume Balok = " << volume << " m3" << endl;
cout << "Jumlah object di dalam kelas = " << CCube::objectCount << endl;
cout << "\nwww.bantubelajar.com" << endl;
return 0;
}


Lalu Klik Debug => Start Without Debugging atau Kombinasi keyboard Ctrl + F5 dan hasilnya akan seperti ini :

Static Data Member Pada C++

Dari contoh program diatas dalam penulisan data member statis harus diawali dengan sintaks static yang menandakan bahwa deklarasi variabel setelahnya berupa static member. Contohnya yaitu static int objectCount;.

Untuk menggunakan member statis juga kita harus menginisialisasinya terlebih dahulu, yaitu sintaks "int CCube::objectCount(0);" dan untuk menampilkan data member statis pada program diatas kita menambahkan kode "cout << "Jumlah object didalam kelas = " << CCube::objectCount << endl;".