Entri Populer

tugas Untuk mata kuliah RISTI

untuk tugas matkul risti Diurutkan dari yang paling bawah
dan di sana sudah ada absensi dan nomer soal yang akan dikerjakan oleh masing - masing mahasiswa

Jumat, 25 September 2009

tentang constructor

Materi tentang constructor

Konstruktor adalah fungsi khusus anggota kelas yang otomatis dijalankan
pada saat penciptaan objek (mendeklarasikan instance). Konstruktor ditandai
dengan namanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai
tipe hasil, bahkan juga bukan bertipe void. Biasanya konstruktor dipakai untuk
inisialisasi anggota data dan melakukan operasi lain seperti membuka file dan
melakukan alokasi memori secara dinamis. Meskipun konstruktor tidak harus ada
di dalam kelas, tetapi jika diperlukan konstruktor dapat lebih dari satu.
Tiga jenis konstruktor:
1. Konstruktor default : tidak dapat meneriman argumen, anggota data diberi
nilai awal tertentu
2. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal
berasal dari parameter.
3. Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota
data diberi nilai awal dari objek lain

Konstruktor
Sebelumnya kita telah menggunakan member fungsi assign() untuk memasukkan nilai ke dalam member variabel pembilang dan penyebut. Sebuah konstruktor melakukan tugas yang sama dengan fungsi assign(), sehingga Anda tidak perlu repot-repot memanggil fungsi assign() untuk setiap objek yang Anda deklarasikan. Sebuah konstruktor harus mempunyai nama yang sama dengan kelas dimana konstruktor tersebut berada, dan dideklarasikan tanpa return value (nilai balik), juga tanpa kata kunci void. Mari kita kembangkan kelas BilanganRasional yang telah kita bahas sebagai berikut :
class BilanganRasional
{
public :
//KONSTRUKTOR BilanganRasional
BilanganRasional(int pemb, int peny)
{
pembilang = pemb;
penyebut = peny;
}
private :
int pembilang, penyebut;
};
Bandingkan struktur konstruktor dengan fungsi assign() yang telah kita bahas sebelumnya. Konstruktor BilanganRasional melakukan tugas yang sama dengan member fungsi assign(). Bedanya hanya terletak pada pemanggilan fungsi dan konstruktor tersebut. Jika fungsi assign() harus kita panggil dengan didahului oleh pendeklarasian sebuah objek, kemudian fungsi dari objek tersebut dipanggil dengan operator titik disertai nilai yang ingin kita input, misal
BilanganRasional x;
x.assign(22,7);
maka konstruktor cukup dipanggil sebagai berikut :
BilanganRasional x(22,7);
Kedua varian tersebut melakukan hal yang sama, yakni menginitialisasikan nilai 22 ke member variabel pembilang, dan nilai 7 ke variabel penyebut.
Konstruktor Dengan Initialization Lists
Penulisan konstruktor dengan daftar initialisasi (initialization lists) merupakan fasilitas yang disediakan oleh C++ untuk menyederhanakan struktur konstruktor. Ini berarti, contoh konstruktor di atas dapat pula ditulis sebagai berikut :
class BilanganRasional
{
public :
BilanganRasional(int pemb, int peny) : pembilang(pemb), penyebut(peny) { }
private :
int pembilang, penyebut;
};
CopyConstructor
Sampai sejauh ini kita telah mempelajari bagaimana struktur sebuah konstruktor serta bagaimana membuat objek dari konstruktor yang telah didefinisikan. Akan tetapi, coba bayangkan apabila Anda telah mempunyai sebuah objek x, dan kemudian Anda menginginkan membuat sebuah objek y yang memiliki nilai member data dan member fungsi yang sama. Tentu saja Anda dapat mendeklarasikan objek baru dengan memanggil konstruktor yang sama sebanyak 2 kali :
BilanganRasional x(22,7);
BilanganRasional y(22,7);
Perintah di atas mendeklarasikan 2 objek, yakni x dan y yang masing-masing memiliki nilai 22 pada member variabel pembilang dan 7 pada member variabel penyebut. Akan tetapi, Anda dapat juga mempersingkat kode diatas dengan perintah berikut :
BilanganRasional x(22,7);
BilanganRasional y(x);
Berikut listing contoh untuk Copy Constructor :
class BilanganRasional
{
public :
BilanganRasional(int pemb, int peny) : pembilang(pemb), penyebut(peny) { }
//CopyConstructor terdapat disini
BilanganRasional(const BilanganRasional& br) : pembilang(br.pembilang), penyebut(br.penyebut) { }
private :
int pembilang, penyebut;
};
void main()
{
BilanganRasional x(22,7);
BilanganRasional y(x);
}
Teori tentang konstructor
Konstructor di gunakan untuk
Untuk menginialisasi agar statenya valid
Untuk member nilai awal tertentu ke suatu objek

Class point { public :
Int x, int y;
Point (int nx, int ny) {x = nx; y = ny;}

Konstructor tidak mempunyai nilai kembalian (return value)
Konstructor dipaggil ketika objek dibentuk point P1 (5, 5)
P1 adalah sebuah point dengan x = 5 dan y =5
atau : point * P1 new point (5, 5);
contoh source code dari constructor
#include
class CRectangle {
int width, height;
public:
CRectangle (int,int);
int area (void)
{return (width*height);}
};
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
}
Hasil source codenya

Tidak ada komentar:

Posting Komentar