Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
2
Inheritance lanjutan Pertemuan 22
Matakuliah : T0456 / Algoritma dan Metode Object Oriented Programming Tahun : 2007 Inheritance lanjutan Pertemuan 22
3
Pada akhir pertemuan ini, diharapkan:
Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat menghasilkan program yang menggunakan konsep inheritance. Buku Referensi: C++ - How to program, Deitel & Deitel, Prentice Hall, 2001. Websites: 3 Bina Nusantara
4
Outline Materi Constructor dan Destructor pada inheritance
Modifikasi class turunan Hirarki class inheritance Contoh program 4 Bina Nusantara
5
Constructor dan Destructor dalam Inheritance
Constructor based class dijalankan terlebih dahulu, kemudian constructor derived class. Destructor derived class dijalankan terlebih dahulu dengan urutan berbalikan dengan urutan constructor. Urutan juga berlaku untuk multiple inheritance. Jika konstruktor based class memiliki parameter, maka parameter constructor based class tersebut harus dimasukkan dalam constructor derived class. Jika parameter constructor derived class ada yang tidak sama dengan constructor based class, maka constructor based class yang akan dijalankan adalah constructor yang memiliki jumlah dan parameter yang paling mendekati. Bina Nusantara
6
Constructor dan Destructor dalam Inheritance Example
class Based1{ Base1(){ cout<<“1”; }; ~Base1(){ cout<<“A”; }; } class Based2:public Based1{ Base2(){ cout<<“2”; }; ~Base2(){ cout<<“B”; }; class Derived:public Based2 { Derived(){ cout<<“3”; }; ~Derived(){ cout<<“C”; }; Void main(){ Derived MyObj; Menghasilkan keluaran: 123CBA Bina Nusantara
7
Modifikasi Fungsi Klas Turunan
Klas turunan (derived class) memiliki member functions yang sama dengan klas utama (base class) Member functions tersebut dapat dimodifikasi disesuaikan kebutuhan kelas tersebut Bina Nusantara
8
// Program C++ -Overload functions Klas turunan
Contoh Program // Program C++ -Overload functions Klas turunan #include <iostream.h> #include <process.h> const int MAX =100; class Stack { protected : int st[MAX}; int top; public : Stack() { top = o ; } void push( int var ) { st[ ++top ] = vbar ;} int pop() { return st[ top -- ] ; } }; Bina Nusantara
9
class Stack 2 : public Stack { public : void push( int var ) {
if ( top < MAX ) Stack :: push( var ); else { cout << “ \nError : stack is full ”; exit(1); } int pop() { if (top > 0 ) return(Stack :: pop()); cout<< “\nError : stack is empty ” ; }; Bina Nusantara
10
s1.push(11); s1.push(22); s1.push(33);
void main() { Stack2 s1; s1.push(11); s1.push(22); s1.push(33); cout << endl << s1.pop(); cout << endi << s1.pop(); } Bina Nusantara
11
Hirarki Klas Satu klas utama dapat memiliki beberapa klas turunan yang masing-masing berbeda. Employee Name Number GetData() PutData() Laborer Scientist Pubs Manager Title Dues Bina Nusantara
12
#include <iostream.h> const int LEN = 80; class employee {
private : char name[LEN]; unsigned long number; public : void getdata() { cout << “ \nEnter Last Name : “ ; cin >> name; cout << “\nEnter number : “ ; cin >> number; } void putdata() { cout << “ \n Name : “ << name; cout << “ \n Number : “ << number; }; Bina Nusantara
13
class manager : public employee { private :
char title[LEN]; double dues; public : void getdata() { employee :: getdata(); cout << “ \nEnter Title : “; cin >> title; cout << “ \n Golf club dues : “ << dues; cin >> dues; } void putdata() { employee :: putdata(); cout << “ \nTitle : “; << dues; }; Bina Nusantara
14
class scientist : public employee { private : int pubs; public :
void getdata() { employee :: getdata(); cout << “\nEnter # pubs: “; cin >> pubs; } void putdata() { employee :: putdata(); cout << “ \n# publications : “; << pubs; }; class laborer : public employee{ }; Bina Nusantara
15
cout << “ \nEnter data for manager 1 ” ; m1.getdata();
void main() { manager m1, m2; scientist s1; laborer l1; cout << “ \nEnter data for manager 1 ” ; m1.getdata(); cout << “ \nEnter data for manager 2 ” ; m2.getdat(); cout << “ \nEnter data for scientist 1 ” ; s1.getdata(); cout << “ \nEnter data for laborer 1 ” ; l1.getdata(); cout << “\nData on manager 1’; m1.putdata(); cout << “\nData on manager 2”; m2.putdata(); cout << “\nData on scientist 1”; s1.putdata(); cout << “\nData on laborer 1”; l1.putdata(); } Bina Nusantara
16
Diskusi dan Tanya Jawab Latihan soal
16 Bina Nusantara
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.