Penjelasan dan Kegunaan Final Specifier

Written by: Fajar   |   Updated on: Juni 10, 2019
final specifier

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’

Baca :   Penjelasan dan Macam-macam Operator Bitwise

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *