Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Inheritance lanjutan Pertemuan 22

Presentasi serupa


Presentasi berjudul: "Inheritance lanjutan Pertemuan 22"— Transcript presentasi:

1

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


Download ppt "Inheritance lanjutan Pertemuan 22"

Presentasi serupa


Iklan oleh Google