Bagikan melalui


Penentu Akhir

Anda dapat menggunakan kata kunci akhir untuk menunjuk fungsi virtual yang tidak dapat ditimpa dalam kelas turunan. Anda juga dapat menggunakannya untuk menunjuk kelas yang tidak dapat diwariskan.

Sintaks

function-declaration final;
class class-name final base-classes

Keterangan

final peka konteks dan hanya memiliki arti khusus ketika digunakan setelah deklarasi fungsi atau nama kelas; jika tidak, itu bukan kata kunci yang dipesan.

Ketika final digunakan dalam deklarasi kelas, base-classes adalah bagian opsional dari deklarasi.

Contoh

Contoh berikut menggunakan kata kunci akhir untuk menentukan bahwa fungsi virtual tidak dapat ditimpa.

class BaseClass
{
    virtual void func() final;
};

class DerivedClass: public BaseClass
{
    virtual void func(); // compiler error: attempting to
                         // override a final function
};

Untuk informasi tentang cara menentukan bahwa fungsi anggota dapat ditimpa, lihat menimpa Penentu.

Contoh berikutnya menggunakan kata kunci akhir untuk menentukan bahwa kelas tidak dapat diwariskan.

class BaseClass final
{
};

class DerivedClass: public BaseClass // compiler error: BaseClass is
                                     // marked as non-inheritable
{
};

Baca juga

Kata kunci
mengesampingkan Penentu