Penjelasan final
Specifier
final
adalah sebuah specifier dari C++11 yang digunakan untuk mencegah terjadinya overriding terhadap suatu function pada sebuah class dan dapat pula untuk mencegah terjadinya inheritance pada suatu class.
final
digunakan untuk mencegah overriding
Contoh Penulisan:
class baseclass{ virtual void perkenalan() final{ //contoh penggunaan final specifier //… } }
Dalam kasus di atas, tidak akan ada yang bisa mencoba untuk membuat function tersebut menjadi sebuah overridden. berikut adalah bukti-nya:
Contoh Program:
#include <iostream> using namespace std; class baseClass { public: virtual void perkenalan() final{ cout<<"Hallo saya Function dari base class"; } }; class derivedClass: public baseClass{ public: void perkenalan() { cout<<"Hallo saya Function dari derived Class"; } }; int main() { derivedClass a; a.perkenalan(); return 0; }
Program di atas tidak akan bisa di jalankan dengan baik, dan akan menghasilkan pesan error yang berbunyi kurang lebih seperti ini:
error: overriding final function ‘virtual void baseClass::perkenalan()’
final
digunakan untuk mencegah inheritance
Contoh Penulisan:
class baseclass final{ //contoh penggunaan final specifier //… }
Dalam kasus di atas, tidak akan ada yang bisa mencoba untuk membuat sebuah inheritance dari class tersebut. berikut adalah bukti-nya:
Contoh Program:
#include <iostream> using namespace std; class baseClass final{ public: virtual void perkenalan(){ cout<<"Hallo saya Function dari base class"; } }; class derivedClass: public baseClass{ public: void perkenalan() { cout<<"Hallo saya Function dari derived Class"; } }; int main() { derivedClass a; a.perkenalan(); return 0; }
Program di atas tidak akan bisa di jalankan dengan baik, dan akan menghasilkan pesan error yang berbunyi kurang lebih seperti ini:
error: cannot derive from ‘final’ base ‘baseClass’ in derived type ‘derivedClass’