Modul ini melanjutkan kelas dan objek menuju hubungan antarkelas: pewarisan dengan tiga tingkat aksesnya, urutan konstruksi dan destruksi, virtual function beserta dynamic dispatch, hingga kelas abstrak sebagai kontrak. Bagian kedua membahas virtual destructor dan object slicing, multiple inheritance beserta masalah diamond, RTTI, dan pertimbangan komposisi dibanding inheritance. Operator overloading pada modul sebelumnya menjadi bekal karena konsep dasarnya sama, yaitu perilaku yang ditentukan tipe sendiri.
OOP bagian II: inheritance dan polymorphism
Pewarisan, virtual function, kelas abstrak, virtual destructor, multiple inheritance, dan RTTI.
0/0 selesai
- Sintaks inheritance dan aksesnya
Inheritance public, protected, private, dan relasi is-a.
- Urutan konstruksi dan destruksi
Sekuens base, member, dan derived saat objek dibuat dan dihancurkan.
- Virtual function
Dynamic dispatch, override, final, dan mental model vtable.
- Kelas abstrak dan pure virtual
Antarmuka dalam C++ dan perancangan kontrak bagi kelas turunan.
- Virtual destructor dan slicing
Alasan destructor kelas dasar wajib virtual serta perilaku object slicing.
- Multiple inheritance dan masalah diamond
Virtual inheritance dan pertimbangan pemakaiannya secara jujur.
- RTTI
dynamic_cast, typeid, dan kapan downcasting menandakan masalah desain.
- Komposisi versus inheritance
Penilaian desain: kapan memilih komposisi dan kapan pewarisan beralasan.