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’