constructor dan descructor

11
INF-103 PEMROGRAMAN II INF-103 PEMROGRAMAN II INF-103 Pemrograman II CONSTRUCTOR DAN DESTRUCTOR Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc Program Studi Informatika FMIPA UNIVERSITAS KUALA http://www.informatika.unsyiah.ac.id

description

constructor dan descructor

Transcript of constructor dan descructor

Page 1: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

INF-103 Pemrograman II

CONSTRUCTOR DAN

DESTRUCTOR

Dr. Taufik Fuadi Abidin, M.TechIrvanizam Zamanhuri, M.Sc

Program Studi InformatikaFMIPA UNIVERSITAS KUALA

http://www.informatika.unsyiah.ac.id

Page 2: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Constructor� Constructor adalah fungsi khusus dalam sebuah class

yang dipanggil saat sebuah objek dibuat. Constructortidak memiliki return value

� Nama constructor sama dengan nama class

� Constructor yang tidak memiliki parameter disebut default constructor

� Jumlah constructor dalam sebuah class boleh lebih dari satu, namun parameternya harus berbeda satu dengan yang lainnya

2

Page 3: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Contohclass counter {

public:counter(int i); //constructorvoid reset() { val = 0; }int get() const { return val; }void print() const {

cout << val << '\t'; }void click() { val = (val + 1) % 100; }

private:int val; // 0 to 99

};

inline counter::counter(int i){val = i%100;}

3

Page 4: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Contoh Penggunaan

counter a(0); // nilai val dalam objek a bernilai 0

counter b(1); // nilai val = 1// nilai val dalam objek b bernilai 1

counter a; //illegal karena tanpa parameter

4

Page 5: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Default Constructor� Default constructor tidak memiliki paramater. Jika

dalam class tidak dibuat constructor, maka compiler akan membuat sebuah default constructor

� Beberapa constructor dapat dideklarasi dalam sebuah class. Proses ini disebut overloading

Bila constructor berikut di tambah dalam class counter:

counter() { val = 0; }

Maka:counter s; //inisialisasi val dalam s = 0counter d[5]; // array ukuran 5 dengan val 0

5

Page 6: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Default ConstructorJika pernyataan berikut ditambahkan dalam class counter :

inline counter::counter(int i = 0) {value = i % 100;

}

Maka constructor tersebut menjadi constructor yang memiliki parameter dan sekaligus menjadi default constructor .

Mengapa?

6

Page 7: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Constructor dalam Classclass Player {

int health;int strength;int agility;

Player(); // constructor - no return type

public void move();public void attack();

};

7

Player::Player() {strength = 10;agility = 10;health = 10;

}

Page 8: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Dua Constructor dalam Classclass Player {

int health;int strength;int agility;

Player(); Player(int s, int a = 5); // 2 parameters

public void move();public void attack();

};

8

Player::Player(int s, int a = 5) {

strength = s;agility = a;health = 10;

}

Player::Player() {strength = 10;agility = 10;health = 10;

}

Page 9: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Inisialisasi Objek Class Player

Player redHat; // default constructor

Player blueHat(14,7);

Player greenHat(20);

Player yellowHat(10,10);

9

Page 10: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Destructor� Destructor lebih simple dari constructor. Setiap class

hanya memiliki satu destructor

� Destructor tidak perlu secara eksplisit dipanggil. Destructor dipanggil secara otomatis oleh compiler saat objek tidak dibutuhkan lagi

� Nama destructor sama dengan nama class dan diawali dengan simbol tilde (~)

10

Player::~Player(){strength = 0;agility = 0;health = 0;

}

Page 11: constructor dan descructor

INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II

Tugas Bacaan:

11

Constructor dan Destructor

http://www.fredosaurus.com/notes-cpp/oop-condestructors/constructors.html

http://www.mycplus.com/tutorials/cplusplus-programming-tutorials/constructors/

http://www.intap.net/~drw/cpp/cpp07_01.htm